import numpy as np
array=np.array([[1997,7,12],
[1998,7,26],
[2004,3,22]])
1、建立一个nd.array数组,用np.sort()排序,默认排序axis=-1
axis=0或者-2是按垂直方向,从大到小排序
axis=-1或者1 是按水平方向,从大到小排序
2、用np.argsort()得到排序后的位置
但是为什么把位置索引回传的时候增加了一个维度,二维变成了三维? 不过不影响,用它来观察排序是怎么进行的就好了。
具体用在一维数据里面:np.argsort()[num],num是非负数表示由小到大的顺位,例如np.argsort(x)[0]为x数组中第一小的数的索引;num是负数表示由大到小的顺位,np.argsort(x)[-1]为x数组中第一大的数的索引。
3、用np.lexsort([array[:,num]])按num+1列由大到小排序后将位置索引返回
np.lexsort([-1*array[:,num]])实现按第num+1列降序排列的位置返回
index=np.lexsort([-1*array[:,2]])
array[index]