python中原生的sort()方法直接对列表进行排序,并不返回索引,例如:
a = [9, 3, 6, 0]
a.sort()
print(a)
输出:
[0, 3, 6, 9]
如果想返回索引可以使用numpy.argsort()方法
import numpy as np
x = np.array([3, 1, 2])
idx = np.argsort(x)
print(idx)
# get data by sort index
a = x[np.argsort(x)]
print(a)
输出:
array([1, 2, 0])
array([1, 2, 3])
这个方法也可以用于高维数组,例如二维
x = np.array([[0, 3], [2, 2]])
x
np.argsort(x, axis=0) #按列排序
np.argsort(x, axis=1) #按行排序
输出:
array([[0, 3],
[2, 2]])array([[0, 1],
[1, 0]])array([[0, 1],
[0, 1]])
版权声明:本文为dou3516原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。