首页 >后端开发 >Python教程 >如何使用 NumPy 的'np.newaxis”在数组操作中启用广播?

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-26 06:18:30973浏览

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' 可以多次使用以将数组提升到更高维度,这对于高阶数组(张量)可能是必需的。

使用示例

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

<code class="python"># Create a row vector from a 1D array
x = np.arange(4)
x_row_vector = x[np.newaxis, :]</code>

要启用广播:

<code class="python"># 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</code>

替代: 'np.expand_dims'

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

附加注释

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

以上是如何使用 NumPy 的'np.newaxis”在数组操作中启用广播?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn