NumPy 函数

NumPy sort() 函数返回指定数组的排序副本。

语法

numpy.sort(a, axis=-1, kind=None, order=None) 

参数

a必填。 指定要排序的数组(array_like)。
axis可选。 指定排序的轴。如果没有,则在排序之前将数组展平。默认值为 -1,沿最后一个轴排序。
kind可选。 指定排序算法。它可以从 {'quicksort', 'mergesort', 'heapsort', 'stable'} 中获取值。默认值:"快速排序"
order可选。 指定包含字段的字符串或字符串列表。当a是定义了字段的数组时,该参数指定需要比较的字段的顺序。

返回值

返回与a相同类型和形状的排序数组(ndarray)。

示例:

在下面的示例中,sort()函数是用于对二维数组的元素进行排序。由于未提供 axis 参数,因此将沿最后一个轴(按行)进行排序。

import numpy as np
Arr = np.array([[1,20,5],[21, 4, 3],[11, 5, 50]])
SortedArr = np.sort(Arr)

print("原始数组:")
print(Arr)
print("\n排序数组:")
print(SortedArr) 

上述代码的输出将是:

原始数组:
[[ 1 20  5]
 [21  4  3]
 [11  5 50]]

排序数组:
[[ 1  5 20]
 [ 3  4 21]
 [ 5 11 50]] 

示例:使用带有 axis 参数的 sort()

要按列对数组进行排序,axis 参数可以设置为 0。

import numpy as np
Arr = np.array([[1,20,5],[21, 4, 3],[11, 5, 50]])
SortedArr = np.sort(Arr, axis=0)

print("原始数组:")
print(Arr)
print("\n排序数组:")
print(SortedArr) 

上述代码的输出将是:

原始数组:
[[ 1 20  5]
 [21  4  3]
 [11  5 50]]

排序数组:
[[ 1  4  3]
 [11  5  5]
 [21 20 50]] 

示例:使用带有 axis=None 的 sort()

当使用 axis=None 时,数组在排序之前会被展平,如下例所示。

import numpy as np
Arr = np.array([[1,20,5],[21, 4, 3],[11, 5, 50]])
SortedArr = np.sort(Arr, axis=None)

print("原始数组:")
print(Arr)
print("\n排序数组:")
print(SortedArr) 

上述代码的输出将是:

原始数组:
[[ 1 20  5]
 [21  4  3]
 [11  5 50]]

排序数组:
[ 1  3  4  5  5 11 20 21 50] 

示例:使用带有 order 参数的 sort()

order 可用于指定排序的列优先级。考虑下面的示例:

import numpy as np
datatype = [("name", "S10"), ("age", int)]
values =  [("John", 25),("Marry", 23), ("Adam", 30)]
Arr = np.array(values, dtype = datatype)

#根据"年龄"列对数组进行排序
SortedArr = np.sort(Arr, order = "age")

print("原始数组:")
print(Arr)
print("\n排序数组:")
print(SortedArr) 

上述代码的输出将是:

原始数组:
[('John', 25) ('Marry', 23) ('Adam', 30)]

排序数组:
[('Marry', 23) ('John', 25) ('Adam', 30)]