检索 NumPy 数组中多个最大值的索引
NumPy 数组提供 np.argmax 函数来定位最大元素的索引。但是,如果您需要 N 个最大值的索引,请考虑以下解决方案:
最近的 NumPy 版本:
对于 NumPy 版本 1.8 及更高版本,argpartition 函数提供一种有效的方法:
import numpy as np a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0]) # Get top 4 indices n_max = 4 ind = np.argpartition(a, -n_max)[-n_max:] # Retrieve top 4 values top_max = a[ind]
旧版 NumPy版本:
在 NumPy 1.8 之前,您可以按如下方式使用 argsort 函数:
# Get top 4 indices n_max = 4 ind = np.argsort(a)[-n_max:] # Retrieve top 4 values top_max = a[ind]
对索引进行排序:
默认情况下,argpartition 返回未排序的索引。如果您需要排序索引,请使用:
ind[np.argsort(a[ind])]
时间复杂度:
以上是如何查找 NumPy 数组中多个最大值的索引?的详细内容。更多信息请关注PHP中文网其他相关文章!