”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用 NumPy 的“np.newaxis”在数组操作中启用广播?

如何使用 NumPy 的“np.newaxis”在数组操作中启用广播?

发布于2024-11-08
浏览:841

How can NumPy\'s \'np.newaxis\' be used to enable broadcasting in array operations?

NumPy 的 'np.newaxis' 是什么以及如何使用它

理解 'np.newaxis'

NumPy 的“np.newaxis”,也称为“None”,是一个伪索引,用于临时向数组添加轴。使用一次时,它将数组的维度增加一。例如,1D 数组变成 2D 数组,2D 数组变成 3D 数组,等等。

使用 'np.newaxis' 的场景

场景 1:从一维数组创建行/列向量

'np.newaxis' 可用于将一维数组显式转换为行向量(通过沿第一维插入轴)或列向量(通过沿第二维插入轴)。

场景 2:启用 NumPy 广播

'np.newaxis' 在执行涉及以下操作时非常有用NumPy 广播。例如,考虑添加两个形状为“(5,)”和“(3,)”的数组。 NumPy 会因形状不兼容而引发错误。通过使用'np.newaxis'增加一个数组的维度,可以启用广播来执行该操作。

场景3:将数组提升到更高的维度

'np.newaxis' 可以多次使用以将数组提升到更高的维度,这对于高阶数组(张量)可能是必需的。

用法示例

To使用'np.newaxis',将其插入到切片表达式中。例如:

# Create a row vector from a 1D array
x = np.arange(4)
x_row_vector = x[np.newaxis, :]

启用广播:

# Add a 1D array to a 2D array
x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([5, 4, 3])
x1_new = x1[:, np.newaxis]    # Insert axis for broadcasting
result = x1_new   x2

替代方案: 'np.expand_dims'

'np.expand_dims' 是 'np.newaxis' 的替代方案,提供直观的“轴” kwarg 指定新轴的插入点。

附加说明

  • 'np.newaxis' 临时添加一个轴,与 'np.reshape' 不同它将数组重塑为新的布局。
  • 'np.newaxis' 和 'None' 是等效的对象。
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3