【发布时间】:2016-03-17 12:50:48
【问题描述】:
为了找到最小值的索引,我可以使用argmin:
import numpy as np
A = np.array([1, 7, 9, 2, 0.1, 17, 17, 1.5])
print A.argmin() # 4 because A[4] = 0.1
但是我怎样才能找到 k 最小值 的索引?
我正在寻找类似的东西:
print A.argmin(numberofvalues=3)
# [4, 0, 7] because A[4] <= A[0] <= A[7] <= all other A[i]
注意:在我的用例中,A 的值介于 ~ 10 000 和 100 000 之间,我只对 k=10 个最小值的索引感兴趣。 k 永远不会 > 10。
【问题讨论】:
-
请参阅this question,尤其是那里的第二个答案,以获得最佳解决方案(它是 O(n) - 对整个数组进行完全排序不是绝对必要的)。