【发布时间】:2012-01-07 09:05:37
【问题描述】:
我有一个 numpy.ndarray,其中的最大值大多会出现不止一次。
编辑:这与numpy.argmax: how to get the index corresponding to the *last* occurrence, in case of multiple occurrences of the maximum values 略有不同,因为作者说
或者,更好的是,是否可以获得数组中所有最大值出现的索引列表?
而在我的情况下,获得这样的清单可能会证明非常昂贵
是否可以使用numpy.argmax 之类的方法找到最后一次出现最大值的索引?我想只找到最后一次出现的索引,而不是所有出现的数组(因为可能有数百个)
例如,这将返回第一次出现的索引,即 2
import numpy as np
a=np.array([0,0,4,4,4,4,2,2,2,2])
print np.argmax(a)
但我希望它输出 5。
【问题讨论】:
-
那里的作者想要所有出现的索引,而那里给出的解决方案
occurences = np.where(a == a.max())将生成一个包含所有最大值的数组,这在我的情况下可能非常昂贵 -
虽然答案只涉及如何获取所有出现,但发问者要求两者,因此“可能重复”而不是“重复”。