+-
如何使numpy.argmax返回所有出现的最大值?
我正在尝试找到一个函数,它返回给定列表中所有出现的最大值.

但是,numpy.argmax仅返回它找到的第一个匹配项.例如:

from numpy import argmax

list = [7, 6, 5, 7, 6, 7, 6, 6, 6, 4, 5, 6]
winner = argmax(list)

print winner

只给出索引0.但我希望它给出所有索引:0,3,5.

最佳答案
正如np.argmax的文档所说:“如果多次出现最大值,则返回与第一次出现相对应的索引.”,因此您将需要另一种策略.

你有一个选择是将np.argwhere与np.amax结合使用:

>>> import numpy as np
>>> listy = [7, 6, 5, 7, 6, 7, 6, 6, 6, 4, 5, 6]
>>> winner = np.argwhere(listy == np.amax(listy))
>>> print(winner)
 [[0]
  [3]
  [5]]
>>> print(winner.flatten().tolist()) # if you want it as a list
[0, 3, 5]
点击查看更多相关文章

转载注明原文:如何使numpy.argmax返回所有出现的最大值? - 乐贴网