Numpy 排序 -- sort()、argsort()
程序员文章站
2022-05-12 17:48:56
...
Numpy 排序 – sort()、argsort()
1、内容排序:sort()
函数原型: 对数组本身进行排序
numpy.sort(a, axis=-1, kind='quicksort', order=None)
参数:
- a:要排序的 numpy 数组
- axis:排序的维度,默认为-1最后一维,None为所有元素拉平后排序
- kind:排序算法,有:‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’
- order:多级排序的顺序,需要构建一个field
实例:
import numpy as np
a = np.array([[1,4],[3,1]])
# 默认按最后一维排序,每行各自排序
np.sort(a)
=> narray([[1, 4],
[1, 3]])
# 按地1维排序 ,每列各自排序
np.sort(a, axis=0)
=> narray([[1, 1],
[3, 4]])
# 所有元素排序
np.sort(a, axis=None)
=> narray([1, 1, 3, 4])
# 多级排序
dtype = [('name', 'S10'), ('height', float), ('age', int)]
values = [('Arthur', 1.8, 41), ('Lancelot', 1.9, 38), ('Galahad', 1.7, 38)]
a = np.array(values, dtype=dtype)
np.sort(a, order='height')
=> array([('Galahad', 1.7, 38), ('Arthur', 1.8, 41), ('Lancelot', 1.8999999999999999, 38)],
dtype=[('name', '|S10'), ('height', '<f8'), ('age', '<i4')])
2、下标排序:argsort()
函数原型: 数组本身不变,返回排序的下标数组
numpy.argsort(a, axis=-1, kind='quicksort', order=None)
参数:
- a:要排序的 numpy 数组
- axis:排序的维度,默认为-1最后一维,None为所有元素拉平后排序
- kind:排序算法,有:‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’
- order:多级排序的顺序,需要构建一个field
实例:
import numpy as np
# 一维数组
x = np.array([3, 1, 2])
np.argsort(x)
=> array([1, 2, 0])
# 二维数组
x = np.array([[0, 3], [2, 2]])
np.argsort(x, axis=0)
=> array([[0, 1],
[1, 0]])
np.argsort(x, axis=1)
=> array([[0, 1],
[0, 1]])
推荐阅读
-
Spring Data JPA使用Sort进行排序(Using Sort)
-
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
-
JavaScript中数组Array.sort()排序方法详解
-
详解数组Array.sort()排序的方法
-
JavaScript中用sort()方法对数组元素进行排序的操作
-
JS简单数组排序操作示例【sort方法】
-
经典排序算法之冒泡排序(Bubble sort)代码
-
JS排序方法(sort,bubble,select,insert)代码汇总
-
Javascript数组系列四之数组的转换与排序Sort方法
-
java插入排序 Insert sort实例