📅  最后修改于: 2023-12-03 15:18:02.708000             🧑  作者: Mango
在 NumPy 中,您可以通过许多种不同的方法将一个 2 维数组转换成一个 1 维数组。下面介绍三种方法。
使用 .flatten()
函数是一个简单且常用的方法。这个函数会返回一个展开的数组,与原数组共享数据存储和内存缓冲区。原数组不会被修改。
import numpy as np
# 创建一个 2D 数组
arr_2d_1 = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
# 使用 .flatten() 函数创建一个新的 1D 数组
arr_1d_1 = arr_2d_1.flatten()
print("方法 1:使用 .flatten() 函数")
print(arr_1d_1)
输出:
方法 1:使用 .flatten() 函数
[0 1 2 3 4 5 6 7 8]
使用 .ravel()
函数将 2D 数组转换成 1D 数组也是一种常用的方法。与 .flatten()
不同的是,该函数返回一个新的 1D
数组,该数组与原始数组共享数据存储,并且数据转换是“按需”进行的,即仅在需要时才将数据复制到新数组中。
# 创建另一个2D数组
arr_2d_2 = np.array([[1, 2, 3], [4, 5, 6]])
# 使用 .ravel() 函数创建一个新的 1D 数组
arr_1d_2 = arr_2d_2.ravel()
print("方法 2:使用 .ravel() 函数")
print(arr_1d_2)
输出:
方法 2:使用 .ravel() 函数
[1 2 3 4 5 6]
使用 .reshape()
函数也是一种将 2D 数组转换成 1D 数组的方法。与前面的方法不同的是,该函数返回一个新的数组,而不是一个视图。
# 创建另一个 2D 数组
arr_2d_3 = np.array([[10, 11], [12, 13]])
# 使用 .reshape() 函数创建一个新的 1D 数组
arr_1d_3 = arr_2d_3.reshape(-1)
print("方法 3:使用 .reshape() 函数")
print(arr_1d_3)
输出:
方法 3:使用 .reshape() 函数
[10 11 12 13]
上述三种方法是将 NumPy 中的 2D 数组转换为 1D 数组的常用方法。根据需要选择适当的方法来转换数组。