python - 查找向量的 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])
解决方案
你可能喜欢heapq.nlargest()
方法。它允许您n
使用线性时间获取任何集合中的最大元素。即你不需要花费O(n*log n)
时间对你的原始收藏进行排序。
import heapq
n = 4
print(np.array(heapq.nlargest(n, arr)))
推荐阅读
- java - Missing artifact error when adding a dependency in pom.xml file
- python - Python:打印所有协议缓冲区字段选项
- html - 可以在里面
标签?
- html - how to add a horizontal line after each heading in an HTML with only CSS
- python - ModuleNotFoundError: 没有名为 '' 的模块。在同一个文件夹中
- python - Is there a way to play multiple mp3 files at once in pygame?
- c# - c# 中 volatile 字段的实际保证是什么?
- docker - Docker Debian nc command not found
- kotlin - Can't import dependencies for Kotlin multi platform common
- javascript - Can't access a property in an array of objects