求向量的N个最大值

时间:2018-08-10 13:41:00

标签: python numpy

如何找到向量的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])

1 个答案:

答案 0 :(得分:1)

您可能喜欢heapq.nlargest()方法。它允许您使用线性时间获取任何集合中n个最大的元素。即您无需对花费O(n*log n)的原始收藏进行排序。

import heapq

n = 4
print(np.array(heapq.nlargest(n, arr)))