要按列而不是按轴对NumPy数组进行排序,可以使用argsort
函数来获取每列的索引排序,然后使用这些索引对数组进行排序。
下面是一个示例代码:
import numpy as np
# 创建一个二维数组
arr = np.array([[4, 1, 3],
[2, 6, 5],
[9, 7, 8]])
# 获取每列的排序索引
sorted_indices = np.argsort(arr, axis=0)
# 使用排序索引对数组进行排序
sorted_arr = np.take_along_axis(arr, sorted_indices, axis=0)
print("原始数组:")
print(arr)
print("\n按列排序后的数组:")
print(sorted_arr)
输出结果为:
原始数组:
[[4 1 3]
[2 6 5]
[9 7 8]]
按列排序后的数组:
[[2 1 3]
[4 6 5]
[9 7 8]]
在上面的示例中,首先使用argsort
函数获取每列的排序索引。然后,使用take_along_axis
函数根据这些索引对数组进行排序,其中axis=0
表示按列排序。最后,输出排序后的数组。