如何找到向量的N个最大值? 假设我有一个向量:
arr = np.array([12.5, 13.6, −9.1, 17.5, 15.3, 10.5])
并且N = 3
输出应为:
np.array([13.6,17.5,15.3])
所以arr的3个最高值保持相同的顺序。
如果N = 4,则输出应为:
np.array([12.5,13.6,17.5,15.3])
答案 0 :(得分:1)
您可能喜欢heapq.nlargest()
方法。它允许您使用线性时间获取任何集合中n
个最大的元素。即您无需对花费O(n*log n)
的原始收藏进行排序。
import heapq
n = 4
print(np.array(heapq.nlargest(n, arr)))