我有一个numpy.ndarray,其中最大值将多次出现.
编辑:这与numpy.argmax略有不同:如果多次出现最大值,如何获取对应于*last*出现的索引,因为作者说
或者,更好的是,是否可以获得数组中所有最大值出现的索引列表?
而在我的情况下,获得这样的清单可能会非常昂贵
是否可以通过使用类似的东西找到最后一次出现的最大值的索引numpy.argmax?我想只查找最后一次出现的索引,而不是所有出现的数组(因为可能有几百个)
例如,这将返回第一次出现的索引,即2
import numpy as np
a=np.array([0,0,4,4,4,4,2,2,2,2])
print np.argmax(a)
Run Code Online (Sandbox Code Playgroud)
但是我希望它输出5.
out*_*tis 28
numpy.argmax仅返回第一次出现的索引.您可以应用于argmax数组的反转视图:
import numpy as np
a = np.array([0,0,4,4,4,4,2,2,2,2])
b = a[::-1]
i = len(b) - np.argmax(b) - 1
i # 5
a[i:] # array([4, 2, 2, 2, 2])
Run Code Online (Sandbox Code Playgroud)
注意numpy不会复制数组,而是使用以相反顺序访问它的步幅创建原始视图.
id(a) == id(b.base) # True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10354 次 |
| 最近记录: |