NumPy排序函数(3个)
NumPy 提供了几个用于排序的函数,可以对数组中的元素进行排序。以下是一些常用的 NumPy 排序函数:
1) sort() 函数用于按照指定轴对数组对象中的元素进行排序,其语法格式如下:
2) argsort() 函数用于按照指定轴对数组对象中的元素进行排序,并返回排序后元素所对应的索引,其语法格式如下:
3) msort() 函数用于按照第 1 个轴对数组对象中的元素进行排序,其语法格式如下:
示例代码如下:
1) sort() 函数用于按照指定轴对数组对象中的元素进行排序,其语法格式如下:
sort(a,axis,kind,order)
- 参数 a 表示数组对象;
- 参数 axis 表示轴索引,该参数为可选参数,其默认值为 -1,表示数组对象中的最后一个轴;
- 参数 kind 表示排序类型,包括 quicksort (快速排序,默认值),mergesort(归并排序)和 heapsort(堆排序);
- 参数 order 表示待排序的字段。
2) argsort() 函数用于按照指定轴对数组对象中的元素进行排序,并返回排序后元素所对应的索引,其语法格式如下:
argsort(a,axis,kind,order)
- 参数 a 表示数组对象;
- 参数 axis 表示轴索引,该参数为可选参数,其默认值为 -1,表示数组对象中的最后一个轴;
- 参数 kind 表示排序类型,包括 quicksort(快速排序,默认值),mergesort(归并排序)和 heapsort(堆排序);
- 参数 order 表示待排序的字段。
3) msort() 函数用于按照第 1 个轴对数组对象中的元素进行排序,其语法格式如下:
msort(a)其中,参数 a 表示数组对象。
示例代码如下:
import numpy as np # 一维数组对象 a = np.array([7, 3, 4, 6, 1, 12, 3]) print(np.sort(a)) print('=====================') print(np.argsort(a)) print('=====================') print(np.msort(a)) print('=====================') # 二维数组对象 b = np.array([[14, 2, 32, 12], [15, 6, 11, 8], [92, 10, 7, 12], [13, 8, 4, 6]]) print(np.sort(b)) print('=====================') print(np.sort(b, 1)) print('=====================') print(np.argsort(b)) print('=====================') print(np.argsort(b, 1)) print('=====================') print(np.msort(b)) print('=====================') # 三维数组对象 c = np.array([[[13, 21, 3, 42], [15, 62, 6, 1], [2, 21, 33, 7]], [[16, 18, 21, 31], [66, 51, 41, 13], [65, 23, 22, 51]], [[54, 22, 43, 14], [14, 12, 34, 21], [33, 34, 5, 12]]]) print(np.sort(c)) print('=====================') print(np.sort(c, 1)) print('=====================') print(np.argsort(c)) print('=====================') print(np.argsort(c, 1)) print('=====================') print(np.msort(c))运行结果为:
# 一维数组对象 [ 1 3 4 6 7 12] ===================== [5 1 2 3 0 6 4] ===================== [ 1 3 4 6 7 12] ===================== # 二维数组对象 [[ 2 12 14 32] [ 6 8 11 15] [ 4 6 7 92] [ 4 6 8 13]] ===================== [[ 2 12 14 32] [ 6 8 11 15] [ 7 92 10 4] [ 4 6 8 13]] ===================== [[[ 1 2 3 0] [ 2 3 1 0] [ 2 0 1 3]] [[ 1 2 3 0] [ 3 2 1 0] [ 3 2 1 0]] [[ 2 1 3 0] [ 0 1 2 3] [ 2 3 0 1]]] ===================== [[[ 1 2 3 0] [ 2 3 1 0] [ 2 0 1 3]] [[ 1 2 3 0] [ 3 2 1 0] [ 3 2 1 0]] [[ 2 1 3 0] [ 0 1 2 3] [ 2 3 0 1]]] ===================== [[ 2 12 14 32] [ 6 8 11 15] [ 4 6 7 92] [ 4 6 8 13]] ===================== # 三维数组对象 [[[ 3 4 13 42] [ 1 15 62 6] [ 2 7 21 33]] [[13 16 18 21] [41 51 66 13] [22 23 51 65]] [[ 5 12 14 22] [12 14 21 34] [ 5 12 3 33]]] ===================== [[[ 2 21 3 42] [ 1 6 15 62] [ 2 3 33 7]] [[13 16 18 21] [13 41 51 66] [22 23 51 65]] [[ 5 12 14 22] [12 14 21 34] [ 3 5 12 33]]] ===================== [[[[0 2 1 3] [3 1 0 2] [1 2 3 0]] [[0 1 2 3] [2 3 0 1] [2 3 1 0]] [[0 1 2 3] [1 0 2 3] [2 3 0 1]]] ===================== [[[ 2 21 3 42] [ 1 6 15 62] [ 2 3 33 7]] [[13 16 18 21] [13 41 51 66] [22 23 51 65]] [[ 5 12 14 22] [12 14 21 34] [ 3 5 12 33]]]