如何在不進行冗餘排序的情況下對數組中的項目進行有效排序?

Mary-Kate Olsen
發布: 2024-10-30 15:11:02
原創
347 人瀏覽過

How to Efficiently Rank Items in an Array without Redundant Sorting?

在不進行冗餘排序的情況下對數組中的項目進行排名

給定一個數字數組,通常需要確定每一個數字數組個項目的排名。傳統上,這涉及對數組進行兩次排序,這對於大型資料集可能效率低下。然而,採用更有效的方法來避免雙重排序可以顯著提高效能。

一種替代方法利用 NumPy 中的 argsort 函數,如下所示:

numpy.array([4,2,7,1])
temp = array.argsort()
ranks = numpy.arange(len(array))[temp.argsort()]
登入後複製

雖然有效,但這種方法仍然涉及對數組進行兩次迭代。

使用Double Argsort 的最佳化方法

為了最佳化排名過程,更有效的策略涉及使用argsort 兩次:

array = numpy.array([4,2,7,1])
order = array.argsort()
ranks = order.argsort()
登入後複製
透過使用argsort 兩次:

透過使用argsort 兩次:

這種最佳化方法提高了效率,尤其是對於大型資料集,因為它消除了額外排序操作的需要。此外,在使用多維數組時,請記住在 argsort 中指定 axis 參數以適當地控制排序軸。

以上是如何在不進行冗餘排序的情況下對數組中的項目進行有效排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!