numpy.argsort
numpy.argsort(a, axis=-1, kind=None, order=None)
返回将对数组进行排序的索引。
使用kind关键字指定的算法,沿着给定的轴执行间接排序。 它沿着给定的轴按排序顺序返回与该索引数据具有相同形状的索引数组。
(返回的只是索引序列,原数组并没有变)
参数:
a : array_like | 进行排序的数组 |
---|---|
axis : int or None, 可选 | 排序所依据的轴。 默认值为-1(最后一个轴)。 如果为None,则使用平铺的数组。 |
kind : {‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, 可选 | 排序算法。 默认值为“quicksort”。 请注意,“stable”和“mergesort”在后台都使用了timsort,通常情况下,实际实现会因数据类型而异。 保留“ mergesort”选项是为了向后兼容。 |
order : str or list of str, 可选 | 当a是定义了字段的数组时,此参数指定要比较第一个,第二个等的字段。可以将单个字段指定为字符串,并且不需要指定所有字段,但是仍将使用未指定的字段。 他们以dtype出现的顺序打破关系。 |
返回:
index_array : ndarray, int | 沿指定轴对排序的索引数组。 如果a是一维的,则a [index_array]产生排序的a。 更一般而言,np.take_along_axis(a,index_array,axis = axis)总是产生排序的a,而与维数无关。 |
---|
官网例子
一维数组
>>> x = np.array([3, 1, 2])
>>> np.argsort(x)
array([1, 2, 0