J'ai une matrice numpue et des valeurs de recherche correspondantes. Dans toutes les colonnes de données, je devrais obtenir une position maximale de la recherche correspondante un convertissant cette position en résultat des données. P>
Je dois faire comme indiqué sur la photo. P>
image parle mieux que ma langue. P>
data = data.transpose(1,0) lookup = lookup.transpose(1,0) results = [] for d in data: matches = lookup[d].diagonal() print (matches) idx = np.argmax(matches, axis=0) res = d[idx] results.append(res) print () print (results)
3 Réponses :
Je ne suis pas sûr de vous comprendre, mais peut-être que c'est ce que vous recherchez?
Pourquoi + np.array ([0, 1, 2]) code>?
juste une façon paresseuse de faire quelque chose comme [[0, 1, 2], [0, 1, 2], [0, 1, 2], ...]]]] code> ie les colonnes pour chaque ligne. Peut-être qu'un meilleur itinéraire serait d'utiliser np.ndgrid code>.
lookup [Data, cols] code> est votre correspondant code>
Vous pouvez utiliser l'aplatissement de fait:
Vous avez des matchs. Ensuite, comment obtenir des résultats?
[1, 2, 1, 0, 3, 2, 4, 2, 1]
Obtenir de l'argmax des correspondances que vous avez produites et converties en valeurs de données. Le résultat attendu est [1, 2, 1, 0, 3, 2, 4, 2, 1]
Pouvez-vous décrire ce que vous essayez de faire, en mots pas en images.
Ajouté dans la question.