Numpy使用排序
Numpy 排序函数
numpy.sort(a, axis=-1, kind=None, order=None)
参数:
- a : 要排序的数组;
- axis : 按什么轴进行排序,默认按最后一个轴进行排序;
- kind :排序方法,默认是快速排序(不稳定),可选参数有:{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}
- order : 当数组定义了字段属性时,可以按照某个属性进行排序;
numpy.argsort(a, axis=-1, kind=None, order=None)
:numpy.argsort 函数用于将数组排序后,返回数组元素从小到大依次排序的所有元素索引
参数:
- a : 要排序的数组
- axis : 按什么轴进行排序,默认按最后一个轴进行排序
- kind :排序方法,默认是快速排序
- order : 当数组定义了字段属性时,可以按照某个属性进行排序
排序后索引解释: 比如说第一行排序后的结果为:[1, 0, 2]
表示原数组索引为 1 的数现在变为 0,原索引为 0 变为 1,原索引为 2 保持不变,即[0, 1, 2] -> [1, 0, 2]
numpy.lexsort(keys, axis=-1)
: numpy.lexsort 函数用于按照多个条件(键)进行排序,返回排序后索引。这里举一个应用场景:小升初考试,重点班录取学生按照总成绩录取。在总成绩相同时,数学成绩高的优先录取,在总成绩和数学成绩都相同时,按照英语成绩录取…… 这里,总成绩排在电子表格的最后一列,数学成绩在倒数第二列,英语成绩在倒数第三列。
参数:
- keys :序列或元组,要排序的不同的列
- axis :指定次排序的轴(默认为-1,即最后一个轴)
注意:根据数组的 shape 维数指定次排序轴,也就是说如果是二维数组只能设置为 0,因为 1 是著排序轴。如果 shape 为(2,3,5),则 axis 可指定为 0 或者 1
根据行和列排序