https://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html
np.argsort()
一维的情况
>>> x = np.array([3, 1, 2])
>>> np.sort(x)
array([1, 2, 3])
>>> np.argsort(x)
array([1, 2, 0])
-------------------------------------------------------------------------------------------------
二维的情况
>>> x = np.array([[0, 3], [2, 2]])
>>> x
array([[0, 3],
[2, 2]])
>>>
>>> np.argsort(x, axis=0) # sorts along first axis (down)
array([[0, 1],
[1, 0]])
>>>
>>> np.argsort(x, axis=1) # sorts along last axis (across)
array([[0, 1],
[0, 1]])
当以axis=0进行比较时,即在纵方向进行比较,可以看到第一列的数字是(0, 2),排序后也应该为(0,2),所以返回的坐标为0在原来数组的坐标是0,2的坐标是1;再看第二列(3,2),排序后应该为(2, 3),即返回的坐标为2在原来数组的坐标:1,然后是3的坐标是 0,
所以返回的array为 array([[0, 1],[1, 0]])
当以axis=1进行比较时,与上面类似
网友评论