📅  最后修改于: 2023-12-03 15:19:19.747000             🧑  作者: Mango
在使用 Python 中的 NumPy 库处理数据时,我们经常会遇到需要将 2D 数组(矩阵)展平为 1D 数组的情况。展平操作可以将多维数组转换为一维数组,以方便进行后续的数据处理和分析。
本文将介绍如何使用 Python 和 NumPy 库来展平 2D NumPy 数组为 1D 数组的方法。
NumPy 提供了一个名为 flatten()
的函数,可以用于将多维数组展平成一维数组。
import numpy as np
# 创建一个 2D NumPy 数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 使用 flatten() 函数展平数组
array_1d = array_2d.flatten()
print(array_1d)
输出结果:
[1 2 3 4 5 6]
在上述示例中,我们先创建了一个包含两行三列的 2D NumPy 数组 array_2d
,然后使用 flatten()
函数将其展平成了一维数组 array_1d
。最后,我们打印了展平后的结果。
另一个用于展平 NumPy 数组的常用函数是 ravel()
。ravel()
函数与 flatten()
函数的功能相似,但有一点细微差别,即 ravel()
返回的是原数组的视图(view),而 flatten()
返回的是原数组的副本(copy)。因此,在某些情况下,ravel()
函数的性能可能更高。
下面是使用 ravel()
函数展平 2D NumPy 数组的示例代码:
import numpy as np
# 创建一个 2D NumPy 数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 使用 ravel() 函数展平数组
array_1d = array_2d.ravel()
print(array_1d)
输出结果:
[1 2 3 4 5 6]
在上述示例中,我们通过创建一个 2D NumPy 数组 array_2d
,然后使用 ravel()
函数将其展平为一维数组 array_1d
。最后,我们打印了展平后的结果。
flatten()
会返回一个数组的副本,因此对返回的一维数组的修改不会影响原始的二维数组。而 ravel()
返回的是一个视图,修改视图中元素的值将会影响到原始数组。ravel()
函数与 flatten()
函数的输出结果是一样的。只有当原数组是一个多维子数组的视图时,两者的行为才不一致。以上就是将 2D NumPy 数组展平为 1D 数组的两种常用方法。根据实际需求选择合适的方法即可。Enjoy Coding!