J'ai besoin de trouver l'index de plusieurs valeurs minimales dans un tableau. Je suis assez connu avec np.argmin
mais cela me donne l'indice de la toute première valeur minimale dans un tableau. Par exemple.
a = np.array([1,2,3,4,5,1,6,1])
print np.argmin(a)
Cela me donne 0, je m'attends à la place, 0,5,7.
Merci!
Cela devrait faire l'affaire:
a = np.array([1,2,3,4,5,1,6,1])
print np.where(a == a.min())
argmin ne renvoie pas une liste comme vous le souhaitez dans ce cas.
Peut être
mymin = np.min(a)
min_positions = [i for i, x in enumerate(a) if x == mymin]
Cela donnera [0,5,7].
Je pense que ce serait le moyen le plus simple, bien qu'il n'utilise aucune fonction numpy sophistiquée
a = np.array([1,2,3,4,5,1,6,1])
min_val = a.min()
print "min_val = {0}".format(min_val)
# Find all of them
min_idxs = [idx for idx, val in enumerate(a) if val == min_val]
print "min_idxs = {0}".format(min_idxs)