2013-03-31 82 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])