numpy.argsort(a, axis=-1, kind=None, order=None):用于给数组排序,返回值为从小到大元素index的值
假设一个数组a为[0,1,2,20,67,3],使用numpy.argsort(a),返回值应为[0,1,2,5,3,4]
a:要排序的数组
axis:排序方向(axis=0:按列排,axis=1:按行排, axis=None:将数组扁平化)
axis=None:先把数组扁平化变成一维数组,再进行排序,假设一个数组z为[[0,1,19],[20,67,3]],当使用numpy.argsort(z,axis=None)时,系统先用flatten()把z扁平化为[0,1,19,20,67,3],再进行排序,得到的结果应为为[0,1,5,2,3,4]
同时axis有时也可以为负数,通常用于多维数组:
假设一个数组K形状为[19,19,5,80]:
K.argmax(a,axis= 0 or -4) returns (19,5,80) with values from 0 to 18
K.argmax(a,axis= 1 or -3) returns (19,5,80) with values from 0 to 18
K.argmax(a,axis= 2 or -2) returns (19,19,80) with values from 0 to 4
K.argmax(a,axis= 3 or -1) returns (19,19,5) with values from 0 to 79
kind: 排序算法(‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’),默认为quicksort
order:当一个数组被结构化,给出排序优先的顺序:
y = np.array([(2, 0), (0, 1)], dtype=[(‘z’, ‘<i4’), (‘x’, ‘<i4’)])
所以这里第一个结构体的z对应为2,第二个z对应为0,第一个结构体的x对应为0,第二个x对应为1,所以当执行np.argsort(y,order=(‘z’)),代表以z 的大小为标准排序,返回值为array([1, 0], dtype=int64),当执行np.argsort(y,order=(‘x’)),代表以x 的大小为标准排序,返回值为array([0, 1], dtype=int64),