我想出的最简单的方法是:
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进行编码。

我想出的最简单的方法是:
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进行编码。