NumPy中提供了各种排序相关的函数。这些排序函数实现了不同的排序算法,每个算法的特点是执行速度、最坏情况性能、所需的工作空间和算法的稳定性。如下,为三种排序算法的比较。
numpy.sort
sort()对数组进行排序,返回排好序的数组副本。可以指定轴方向。
函数语法:
参数
- a:待排序数组
- axis:指定排序的轴。如果没有,按最后一个轴排序。
- kind: 默认是‘quicksort’
- order: 指定排序字段
示例
numpy.argsort
numpy.argsort 函数先对数组进行排序,然后提取排序后的数组索引,以数组形式返回。原数组不会被修改,通过索引可以得到排序结果。
numpy.lexsort
numpy.lexsort 函数用于对多个序列进行排序,类似于SQL中的ORDERBY多个字段:ORDER BY 字段1, 字段2, 字段3。可以想象成对电子表格进行排序,每一列代表一个序列,越后面的列优先级越高。
原数组不会被修改,该函数提取排序后的数组索引,以数组形式返回,通过索引可以得到排序结果。
上面传入 np.lexsort 的是一个tuple,排序时首先排 n,顺序为:1、2、3 。综上排序结果为 [1 2 3]。
numpy.argmax 与 numpy.argmin
返回指定轴上,最大和最小元素的索引。
numpy.nonzero
numpy.nonzero 函数返回数组中非零元素的索引。
numpy.where
numpy.where 函数查找数组中符合条件的元素,返回其索引。
numpy.extract
numpy.extract 返回数组中符合条件的元素值。