python使用numpy进行排序后返回相应的索引

        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排序返回索引

你可能感兴趣的:(Python,numpy,python,开发语言)