Python中的NumPy Newaxis

2025年3月5日 | 阅读 4 分钟

NumPy 是 Python 中一个强大的数值计算包。它支持数组和矩阵,以及一套用于高效数组操作的数值函数。NumPy 中一个特别有用的功能是使用 'newaxis' 属性更改数组维度的能力。

当调用一次时,NumPy 函数 'newaxis' 会将现有数组的维度增加一。它能够实现简单的数组广播和重塑,这对于许多数值计算至关重要。

以下是关于 'new axis' 如何工作的简要说明

增加数组维度

假设你在 NumPy 中有一个一维数组

语法

通过嵌入一个带有 'newaxis' 的新轴,可以将此一维数组转换为二维数组。

现在 'array_new' 将是一个形状为 '(3, 1)' 的二维数组。

代码

输出

 
Original Array (1D):
[1 2 3]
New Array (2D):
[[1]
 [2]
 [3]]   

广播

  • 'newaxis' 对于广播操作非常有用,因为它会自动调整不同形状的数组,以便有效地执行算术运算。
  • 假设你有一个一维数组 'first_array',并且需要为每个元素分配一个标量值。你可以通过以下方式使用带有 'new axis' 的广播:

语法

在这里,'5[:, np.newaxis]' 生成了一个新的二维数组,其值与 first_array 相同,但每个值都增加了 5。

代码

输出

 
Original Array:
[1 2 3]

Result after Broadcasting:
[[6]
 [7]
 [8]]   

重塑

  • 'newaxis' 可用于重塑数组。
  • 要将一维数组重塑为 3x3 的结构,请使用 'newaxis' 和 'reshape' 函数。

语法

这等同于

这两种方法都从初始的一维数组生成了一个 3x3 的矩阵。

代码

输出

 
Original Array (1D):
[1 2 3 4 5 6 7 8 9]

Reshaped Array (3x3 Matrix):
[[1 2 3]
 [4 5 6]
 [7 8 9]]   

让我们更深入地了解 'new axis' 在 NumPy 中的应用和功能

连接和堆叠

  • 'newaxis' 允许你在新的轴上连接或堆叠数组。
  • 要将两个一维数组垂直堆叠成一个二维数组,请使用 'newaxis'。

语法

索引和切片

  • 'new axis' 命令也可以用于索引和切片操作,以便在精确位置插入一个新轴。
  • 要将一维数组中的一列转换为二维数组,请使用 'new axis'。

语法

它以形状为 '(3, 1)' 的二维数组的形式返回 'first_array_2d' 的第一个列。

维度操作

  • 'newaxis' 函数允许你根据特定操作的需求来操作数组的维度。
  • 它可以与其他 NumPy 函数和方法结合使用,以执行复杂的数组形状修改。

可视化数据

在处理 Matplotlib 等数据可视化工具时,'newaxis' 有助于格式化数据以进行绘图。

例如,当将一维数据与另一个变量绘制时,你可能需要创建一个新轴来在图中正确地表示数据。

机器学习和数据分析

  • 在机器学习和数据分析工作中,'newaxis' 可以帮助重塑输入数据以满足模型和算法的需求。
  • 例如,在准备用于神经网络训练的数据时,你可能需要使用 'newaxis' 重塑数组,以包含批量和通道维度。

结论

总之,NumPy 中的 'newaxis' 提供了一个多功能的工具,用于修改数组维度,这对于 Python 中广泛的数值计算任务是必需的。通过引入一个新轴,'newaxis' 允许进行平滑的广播、重塑、排序、切片、连接、堆叠和可视化数组。它通过促进机器学习、数据分析、科学计算等流程,提高了操作的灵活性和效率。理解如何有效利用 'newaxis' 允许用户轻松执行复杂的转换和计算,使其成为任何使用 NumPy 处理 Python 中数值数据的用户的基本概念。