擷取 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中文網其他相關文章!