首页  >  文章  >  后端开发  >  如何将 4D NumPy 数组重塑为 2D 数组?

如何将 4D NumPy 数组重塑为 2D 数组?

Susan Sarandon
Susan Sarandon原创
2024-11-02 05:27:29321浏览

How can I reshape a 4D NumPy array into a 2D array?

在 NumPy 中将 4D 数组重塑为 2D 数组背后的直觉和概念

理解挑战

重塑多维数组NumPy 中的计算可能很棘手,尤其是在处理 4D 数组等高维数据时。挑战在于理解如何在不改变数据值的情况下操纵数组的轴来实现所需的形状。

重塑形状的一般方法

重塑 nd 维 (nd) 数组涉及两步过程:

  1. 排列轴:重新排序数组的轴以与所需的形状对齐。这可以使用 numpy.transpose() 或 numpy.rollaxis() 等函数来实现。
  2. Reshape:使用 numpy.reshape() 通过分割或分割来修改数组的形状合并轴。

具体案例:4D 到 2D 重塑

在给定的示例中,4D 输入数组被重塑为 2D 数组。使用上面概述的一般方法:

  1. 排列轴:为了对齐尺寸,轴按如下方式重新排列:(2,0,3,1)。这意味着第二维变为第一维,第一维变为第二维,第三维变为第三维,第四维变为第四维。
  2. Reshape:轴排列后,数组为使用 reshape() 重塑为所需的 (4, 4) 形状。

关键见解

关键见解是重塑过程涉及分解排列成更小的块,然后将其重新组装成所需的形状。通过仔细操作轴并使用适当的重塑操作,我们可以有效地转换多维数组。

其他示例

为了说明这种方法的通用性,请考虑以下示例:

示例:3D 数组到 2D 矩阵

考虑一个维度为 (2, 2, 3) 的 3D 数组。要将其重塑为维度为 (4, 3) 的二维矩阵,可以将轴排列为 (1, 0, 2),然后按如下方式重塑:

<code class="python">>>> import numpy as np

>>> arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])

>>> permuted = np.transpose(arr, (1, 0, 2))

>>> reshaped = permuted.reshape(4, 3)

>>> print(reshaped)
[[1 2 3]
 [4 5 6]
 [7 8 9]
 [10 11 12]]</code>

以上是如何将 4D NumPy 数组重塑为 2D 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

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