首页 > 后端开发 > Python教程 > 如何查找 NumPy 数组中多个最大值的索引?

如何查找 NumPy 数组中多个最大值的索引?

Linda Hamilton
发布: 2024-12-29 18:08:14
原创
305 人浏览过

How to Find the Indices of Multiple Maximum Values in a NumPy Array?

检索 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])]
登录后复制

时间复杂度:

  • argpartition: 最坏情况下的 O(n) case
  • argsort: O(n log n)
  • 组合方法(排序索引): O(n k log k) 对于 top-k 排序元素

以上是如何查找 NumPy 数组中多个最大值的索引?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板