2013-03-31 113 views
1

假設您有一個未排序的列表,並使用np.sort對它進行排序。有沒有辦法使用numpy從原始列表中獲取排序列表的索引?從排序列表中提取索引

+2

您是否在尋找'argsort',如[這個問題](HTTP://計算器。 COM /問題/ 7341557/GET-原始指數對的一排序,numpy的陣列)? – DSM

+1

你會接受一個使用python內建'sorted'的答案嗎? 'args = [9,7,5,3,1,8,6,4,2,0];打印排序((價值,指數)索引,枚舉(args)值)' – hughdbrown

+0

@DSM我使用了argsort()。謝謝 – lord12

回答

1

最簡單的方法是用位置索引增加數組,然後對二維數組進行排序。這樣就可以同時給出排序數據和原始位置標記。

如果你只想要indicies(未排序的數據),使用argsort

>>> from numpy import array 
>>> arr = array([10, 5, 80, 20, 70, 18]) 
>>> arr.argsort() 
array([1, 0, 5, 3, 4, 2])