📜  numpy make 2d array 1d - Python (1)

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

在 NumPy 中将 2D 数组转换为 1D 数组

在 NumPy 中,您可以通过许多种不同的方法将一个 2 维数组转换成一个 1 维数组。下面介绍三种方法。

方法 1:使用 .flatten()

使用 .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]

方法 2:使用 .ravel()

使用 .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]

方法 3:使用 .reshape()

使用 .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 数组的常用方法。根据需要选择适当的方法来转换数组。