📜  Python|将 2d numpy 数组展平为 1d 数组(1)

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

Python | 将 2D NumPy 数组展平为 1D 数组

简介

在使用 Python 中的 NumPy 库处理数据时,我们经常会遇到需要将 2D 数组(矩阵)展平为 1D 数组的情况。展平操作可以将多维数组转换为一维数组,以方便进行后续的数据处理和分析。

本文将介绍如何使用 Python 和 NumPy 库来展平 2D NumPy 数组为 1D 数组的方法。

方法一:flatten()

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。最后,我们打印了展平后的结果。

方法二:ravel()

另一个用于展平 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!