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)]