NumPy 提供了多种对多维数组进行排序的函数,以下是一些常用的排序函数及其使用方法:
np.sort(a, axis=-1, kind=None, order=None)
:
这个函数对数组a
进行排序,默认是对最后一个轴(axis=-1
)进行排序。axis
参数可以指定排序的轴,kind
参数可以指定排序算法(例如 ‘quicksort’, ‘mergesort’, ‘heapsort’),order
参数可以指定多字段排序的顺序。示例:
1
2
3
4import numpy as np
a = np.array([[3, 2], [1, 0]])
sorted_a = np.sort(a, axis=0) # 按行排序np.argsort(a, axis=-1, kind=None, order=None)
:
这个函数返回数组a
排序后的索引数组。与np.sort
类似,axis
,kind
,order
参数可以指定排序的轴、算法和多字段排序的顺序。示例:
1
2
3
4import numpy as np
a = np.array([[3, 2], [1, 0]])
idx = np.argsort(a, axis=1) # 按列排序np.lexsort(keys, axis=0)
:
这个函数用于多键排序,keys
是一个元组,包含多个数组,这些数组将用于多字段排序。axis
参数指定排序的轴。示例:
1
2
3
4
5import numpy as np
x = np.array([2, 2, 3, 3])
y = np.array([1, 3, 2, 4])
sorted_idx = np.lexsort((y, x)) # 先按y排序,y相同的情况下按x排序np.msort(a)
:
这个函数对数组a
进行排序,并返回一个新的排序后的数组。与np.sort
不同的是,np.msort
总是返回数组的一个拷贝,而不是在原地排序。示例:
1
2
3
4import numpy as np
a = np.array([[3, 2], [1, 0]])
sorted_a = np.msort(a)
这些函数可以应对不同场景下的多维数组排序需求。在使用时,需要根据具体的排序需求选择合适的函数和参数。