Самый быстрый способ найти показатели наивысшего значения в матрице итеративно и исключительноPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Самый быстрый способ найти показатели наивысшего значения в матрице итеративно и исключительно

Сообщение Anonymous »

Я пытаюсь найти «лучшие хиты» в матрице сходства (то есть матрица MXN, где индекс вдоль каждой оси соответствует позиции ITH в векторе M и JTH Position в векторе N). Самый простой способ объяснить это - найти индексы самых высоких значений в матрице итеративно, исключая ранее выбранные ряды и столбцы. Это приводит к выбранным индексам MIN (M, N).import numpy as np
import pandas as pd

def pairwise_best_hit(sim):
xdim,ydim = np.meshgrid(np.arange(sim.shape[1]),np.arange(sim.shape[0]))
table = np.vstack((sim.ravel(),xdim.ravel(),ydim.ravel())).T
df = pd.DataFrame(table).rename(columns={0:'sim',1:'index2',2:'index1'}).sort_values('sim',ascending=False)
seq1_hits = []
seq2_hits = []
while len(df):
index1 = df.iloc[0]['index1']
index2 = df.iloc[0]['index2']
seq1_hits.append(index1)
seq2_hits.append(index2)
df = df[(df['index1']!=index1)&(df['index2']!=index2)]
return [seq1_hits,seq2_hits]
< /code>
и для матрицы < /p>
sim = np.array([[1,5,6,2],[7,10,3,4],[1,5,3,7]])
pairwise_best_hit(sim)
< /code>
возвращает < /p>
[[1, 2, 0], [1, 3, 2]]


Подробнее здесь: https://stackoverflow.com/questions/795 ... nd-exclusi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»