2015-09-05 6 views
1

Просто интересно узнать, где найти максимальные значения, если их больше, чем один из них?Поиск позиций максимального элемента в массиве numpy, если их более одного

На данный момент я делаю:

max = np.amax(V) 
position = V.tolist().index(max) 

Но сказать, что мы имеем V = [0,1,2,5,2,5,3] Мы получим макс = 5 положение = 3 (но не 5?)

Может ли кто-нибудь помочь? Благодаря

ответ

3

Вы можете использовать np.nonzero найти индексы, которые равны максимальному значению:

>>> a 
array([2, 5, 4, 4, 4, 2, 1, 1, 2, 2, 5, 4, 1, 4, 0, 0, 5, 1, 4, 1]) 
>>> np.nonzero(a == a.max())[0] 
array([ 1, 10, 16]) 
>>> a[_] 
array([5, 5, 5])