我有一个距离数组a = np.array([20.5 ,5.3 ,60.7 ,3.0 ], 'double')
,我需要排序数组的索引(例如[3, 1, 0, 2]
,a.sort()
)。 Numpy有没有这样做的功能呢?
答案 0 :(得分:49)
是的,有x = numpy.argsort(a)
函数或x = numpy.ndarray.argsort(a)
方法。它完全符合您的要求。您也可以在argsort
对象上调用ndarray
作为方法,如下所示:a.argsort()
。
以下是文档的链接:http://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html#numpy.argsort
答案 1 :(得分:4)
以下是一个示例,供参考和使用:
# 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])