首頁 >後端開發 >Python教學 >如何找到 NumPy 陣列中前 N 個最大值的索引?

如何找到 NumPy 陣列中前 N 個最大值的索引?

Susan Sarandon
Susan Sarandon原創
2024-12-06 01:38:11839瀏覽

How Can I Find the Indices of the Top N Maximum Values in a NumPy Array?

使用 NumPy 找出多個最大值

NumPy 陣列提供各種統計運算函數,包括使用 np.argmax 尋找單一最大值。但是,對於需要識別前 N 個最大值的場景,np.argmax 無法滿足特定要求。

解決方案:在較新的NumPy 版本中使用np.argpartition

在NumPy 1.8 及更高版本中,np.argpartition 函數為這個問題提供了解決方案。透過使用此函數,您可以獲得 N 個最大元素的索引。

例如,考慮一個陣列 [1, 3, 2, 4, 5]。要檢索四個最大元素的索引:

這將產生以下輸出:

其中'ind' 代表四個最大元素的索引,並且'top_four' 是對應的值。

對有序索引進行排序輸出

如果需要,您可以透過對對應的陣列元素呼叫np.argsort 來進一步對索引進行排序:

這確保在中獲得前k 個元素排序順序,時間複雜度為O(n k log k)。

以上是如何找到 NumPy 陣列中前 N 個最大值的索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn