获取已排序的Numpy数组的原始索引

Adr*_*gas 35 python numpy

我有一个距离数组,a = np.array([20.5 ,5.3 ,60.7 ,3.0 ], 'double')我需要排序数组的索引(例如[3, 1, 0, 2],for a.sort()).Numpy有功能吗?

Phi*_*oud 49

是的,有x = numpy.argsort(a)功能或x = numpy.ndarray.argsort(a)方法.它完全符合您的要求.您也可以argsortndarray对象一样调用对象的方法:a.argsort().

这是文档的链接:http://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html#numpy.argsort


Oll*_*ass 9

这是一个示例,以供参考和方便:

# create an array
a = np.array([5,2,3])

# np.sort - returns the array, sorted
np.sort(a)
>>> array([2, 3, 5])

# argsort - returns the original indexes of the sorted array
np.argsort(a)
>>> array([1, 2, 0])
Run Code Online (Sandbox Code Playgroud)