📜  numpy 排序多维数组 - Python (1)

📅  最后修改于: 2023-12-03 15:03:19.057000             🧑  作者: Mango

Numpy 排序多维数组

在数据处理和科学计算中,排序是很常见的需求。NumPy数组的 sort() 函数可以帮助我们对数组进行排序,本文将介绍如何对多维数组进行排序。

一维数组的排序

让我们从最简单的一维数组开始。

import numpy as np

arr = np.array([3, 1, 2])
arr.sort()
print(arr)  # [1 2 3]

通过 sort() 函数,我们可以直接对一维数组进行排序。

多维数组的排序

对于多维数组,sort() 函数默认对每个轴(即维度)进行排序。例如,对于一个二维数组,sort() 函数默认在每一行上排序。

import numpy as np

arr = np.array([[3, 2], [1, 4]])
arr.sort()
print(arr)
# [[2 3]
#  [1 4]]

我们在上面的代码中定义了一个二维数组 arr,并对其进行排序。你会发现,sort() 函数默认在每一行上进行排序。

如果我们希望按列排序,而不是按行排序,可以指定 axis 参数。axis=0 表示按列排序,axis=1 表示按行排序。

import numpy as np

arr = np.array([[3, 2], [1, 4]])
arr.sort(axis=0)
print(arr)
# [[1 2]
#  [3 4]]

在上面的代码中,我们通过指定 axis=0,实现按列排序。

按条件排序

有时,我们希望按特定的条件对数组进行排序。例如,我们可以按照数组元素的大小进行排序。

import numpy as np

arr = np.array([3, 1, 2])
indices = arr.argsort()
print(indices)  # [1 2 0]
print(arr[indices])  # [1 2 3]

在上面的代码中,我们使用 argsort() 函数获取数组元素从小到大的索引,然后通过索引从小到大获取排序后的数组。

结论

通过本文,我们学习了如何使用 sort() 函数对多维数组进行排序。我们还学习了如何按特定条件排序。我希望这篇文章对你有所帮助!