了解 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中文网其他相关文章!