官方文档:
https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.argsort.html#numpy.argsort
argsort函数返回的是数组值从小到大的索引值
结果中1表示最小的数的索引是1对应数字1,2表示次小的索引是2对应数字2,最大的数据是索引0对应数字3。
>>> x = np.array([[0, 3], [2, 2]])>>> xarray([[0, 3], [2, 2]])>>> np.argsort(x, axis=0) #按列排序array([[0, 1], [1, 0]]) >>> np.argsort(x, axis=1) #按行排序 array([[0, 1], [0, 1]])按列排序时,第二列是【3,2】从小到大的索引应该是【1,0】
连续两个argsort的用法有时候我想得到矩阵中每个元素按列从大到小排序后,每个值排序后的索引,可以使用连续两个argsort实现
>>>a=np.array([2, 3, 5, 9, 10, 4])>>>a=a.reshape((3,2))>>一分快三技巧;> xarray([[0, 3], [2, 2]])>>> np.argsort(x, axis=0) #按列排序array([[0, 1], [1, 0]]) >>> np.argsort(x, axis=1) #按行排序 array([[0, 1], [0, 1]])按列排序时,第二列是【3,2】从小到大的索引应该是【1,0】
连续两个argsort的用法有时候我想得到矩阵中每个元素按列从大到小排序后,每个值排序后的索引,可以使用连续两个argsort实现
>>>a=np.array([2, 3, 5, 9, 10, 4])>>>a=a.reshape((3,2))>>>aarray([[ 2, 3], [ 5, 9], [10, 4]])>>>(-a).argsort(axis=0).argsort(axis=0)#从大到小array([[2, 2], [1, 0], [0, 1]], dtype=int64)拿第一列来看,10最大索引为0, 2最小索引为2