Tag: max

Python – 如何在NumPy数组中获得N个最大值的索引?

NumPy提出了一种获取数组最大值索引的方法np.argmax。 我想要一个类似的东西,但返回N最大值的索引。 例如,如果我有一个数组,[1, 3, 2, 4, 5],function(array, n=3)将返回的索引[4, 3, 1]相对应的元素[5, 4, 3]。 [1]: import numpy as np In [2]: arr = np.array([1, 3, 2, 4, 5]) In [3]: arr.argsort()[-3:][::-1] Out[3]: array([4, 3, 1]) 这涉及到完整的数组。我想知道是否numpy提供了一种内置的方式来进行局部排序; 到目前为止,我还没有找到一个。 如果这个解决方案太慢(特别是对于小型n),那么在Cython中编写代码可能是值得的。 较新的NumPy版本(1.8及更高版本)具有此功能argpartition。要获得四个最大元素的索引,请执行 >>> a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0]) >>> a array([9, 4, 4, 3,