首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板