在不進行冗餘排序的情況下對數組中的項目進行排名
給定一個數字數組,通常需要確定每一個數字數組個項目的排名。傳統上,這涉及對數組進行兩次排序,這對於大型資料集可能效率低下。然而,採用更有效的方法來避免雙重排序可以顯著提高效能。
一種替代方法利用 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中文網其他相關文章!