首页 > 解决方案 > 查找向量的 N 个最大值

问题描述

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

标签: pythonnumpy

解决方案


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

import heapq

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

推荐阅读