可以使用 np.argmax 函数获取 NumPy 数组中最大值的索引。然而,为了检索多个最大值的索引,本文探讨了替代方法。
最近的 NumPy 版本(1.8 及以上)具有 argpartition 函数,它可以根据指定条件检索索引。要获取 n 个最大元素的索引,请将此函数与 n 的负参数一起使用,表示降序排序。
>>> a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0]) # Sample array >>> ind = np.argpartition(a, -4)[-4:] # Indices of top 4 largest elements
与 argsort 不同,argpartition 在最坏情况下线性运行,但它不返回排序索引。要对它们进行排序,请在分区数组上使用 np.argsort:
>>> sorted_ind = ind[np.argsort(a[ind])]
或者,利用 NumPy 的高级索引功能:
>>> descending_order = np.argsort(a)[::-1] # Indices of elements in descending order >>> top_n = descending_order[:n] # Top n indices
还存在自定义解决方案,例如:
以上是如何高效查找 NumPy 数组中前 N 个最大值的索引?的详细内容。更多信息请关注PHP中文网其他相关文章!