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]])
参考:python 序列排序 排序后返回相应的索引_Python 学习者的博客-CSDN博客_python排序返回索引
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)