argsort() 函数返回数组从小到大排序后对应的索引值,也就是返回的是索引值,而不是一贯的排序后的元素。
Help on function argsort in module numpy.core.fromnumeric:
argsort(a, axis=-1, kind='quicksort', order=None)
Returns the indices that would sort an array.
看例子比较实在,
>>> a=[2,3,1,0]
>>> argsort(a)
array([3, 2, 0, 1])
>>>
对于a数组,从小到大排序应该是[0, 1, 2, 3],由此每个数对应于a数组的索引值就是[3, 2, 0, 1]。
再看下二维数组,
>>> b=array([[2,3,0],[4,2,1]])
>>> b
array([[2, 3, 0],
[4, 2, 1]])
>>> argsort(b)
array([[2, 0, 1],
[2, 1, 0]])
>>>
可见,此时是按行向量方向排序后返回元素对应的索引值。
当然也可以控制按照列方向排序,那就是使用axis参数,
>>> b
array([[2, 3, 0],
[4, 2, 1]])
>>> argsort(b, axis=0)
array([[0, 1, 0],
[1, 0, 1]])
>>> argsort(b, axis=1)
array([[2, 0, 1],
[2, 1, 0]])
>>>
和sum函数类似,
axis=0表示每一行作为一个元素,在列方向排序;axis=1表示每一列作为一个元素,在行方向排序。
版权声明:本文为u010039418原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。