Python-如何获取NumPy数组中N个最大值的索引?
NumPy提出了一种通过来获取数组最大值的索引的方法np.argmax
。
我想要类似的事情,但是返回N最大值的索引。
例如,如果我有一个数组,[1, 3, 2, 4, 5]
,function(array, n=3)
将返回的索引[4, 3, 1]
相对应的元素[5, 4, 3]
。
回答:
我想出的最简单的方法是:
In [1]: import numpy as npIn [2]: arr = np.array([1, 3, 2, 4, 5])
In [3]: arr.argsort()[-3:][::-1]
Out[3]: array([4, 3, 1])
这涉及数组的完整排序。我想知道是否numpy
提供了一种进行部分排序的内置方法。到目前为止,我还没有找到一个。
如果此解决方案太慢(尤其是对于小型解决方案n),则可能值得考虑使用Cython
进行编码。
以上是 Python-如何获取NumPy数组中N个最大值的索引? 的全部内容, 来源链接: utcz.com/qa/436139.html