it-swarm.com.de

Finden Sie den Index der Mindestwerte in einem gegebenen Array in Python

Ich muss den Index von mehr als einem Mindestwert finden, der in einem Array vorkommt. Ich bin mit np.argmin ziemlich bekannt, aber es gibt mir den Index des ersten Minimalwerts in einem Array. Zum Beispiel. 

a = np.array([1,2,3,4,5,1,6,1])    
print np.argmin(a)

Dies gibt mir 0, stattdessen erwarte ich 0,5,7.

Vielen Dank! 

15
user2766019

Das sollte den Trick tun: 

a = np.array([1,2,3,4,5,1,6,1]) 
print np.where(a == a.min())

argmin gibt keine Liste zurück, wie Sie es in diesem Fall erwarten. 

23
Tom Swifty

Könnte sein

mymin = np.min(a)
min_positions = [i for i, x in enumerate(a) if x == mymin]

Es wird [0,5,7] geben.

3
tonjo

Ich denke, das wäre der einfachste Weg, obwohl er keine ausgefallene numpy-Funktion verwendet

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)
1
jrk0414