如何使用 np.newaxis 控制 NumPy 中的数组维度?

Barbara Streisand
发布: 2024-10-26 01:56:02
原创
225 人浏览过

How Can np.newaxis Be Used to Control Array Dimensions in NumPy?

了解 np.newaxis 及其应用

NumPy 的 np.newaxis 是一个强大的工具,可以让用户无缝地增加数组的维度。当使用 np.newaxis 一次时,一维数组会转换为二维数组,二维数组会变成三维数组,依此类推。

场景 1:创建行或列向量

np.newaxis 被证明对于将一维数组显式转换为行或列向量非常有用。通过沿第一维插入轴,我们创建一个行向量,通过沿第二维插入轴,我们获得一个列向量。

示例:

<code class="python">arr = np.arange(4)
row_vec = arr[np.newaxis, :]
col_vec = arr[:, np.newaxis]</code>
登录后复制

场景 2:启用广播

np.newaxis 在促进 NumPy 广播进行加法等操作方面发挥着至关重要的作用。为了说明这一点,请考虑以下数组:

<code class="python">x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([5, 4, 3])</code>
登录后复制

尝试直接在 NumPy 中添加这些数组将触发 ValueError,因为它们的形状不同。通过使用 np.newaxis 将新轴插入任一数组,我们启用广播并允许操作继续进行。

示例:

<code class="python">x1_new = x1[:, np.newaxis]
sum_array = x1_new + x2</code>
登录后复制

或者,我们可以向 x2 添加新轴:

<code class="python">x2_new = x2[:, np.newaxis]
sum_array = x1 + x2_new</code>
登录后复制

场景 3:提升高阶数组的维度

np.newaxis 可以多次使用,将数组提升为更高维度,该功能对于操作张量特别有用。

示例:

<code class="python">arr = np.arange(5*5).reshape(5,5)
arr_5D = arr[np.newaxis, ..., np.newaxis, np.newaxis]</code>
登录后复制

替代方案:np.expand_dims 和 None

np.expand_dims 提供了一个直观的轴参数来扩展维度。此外,None 可以与 np.newaxis 互换使用。

结论

np.newaxis 是管理 NumPy 数组维度的多功能工具。其应用范围从创建行或列向量到启用广播和提升高阶数组的维度。

以上是如何使用 np.newaxis 控制 NumPy 中的数组维度?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板