Python使用np.reshape将三维数组展开为二维数组

山间有风
山间有风
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍如何利用Python的NumPy库将三维数组转换为二维数组。通过np.reshape函数,指定目标维度如(a, b),其中-1可自动计算未知维度,实现数组形状的重塑。示例展示了(4,3,2)数组展开为(12,2)的过程,保持最后一维相对位置不变,适用于数据预处理和模型输入调整。

三维数组展开为二维数组的实现方法

此前曾介绍过Python中实现两个二维数组叠加生成三维数组的方法。

本文尝试通过一种间接方式来解决二维数组叠加成三维数组的问题。

然而需求往往随之变化,在成功将数组叠加后,新的任务出现了:需要将三维数组还原展开为二维数组。正如俗语所说,有借有还,再借不难,今天我们将重点解决这一展开操作。

与叠加操作相比,NumPy对数组展开的支持更为完善,只需正确使用np.reshape(A, (a, b))函数即可实现。

该函数涉及以下关键参数:

A:代表需要被重新组合或重塑的原始数组。

(a, b):定义展开后各个维度的长度。例如,若目标是将数据展开为二维结构,则(a, b)分别对应展开后的行数和列数。

此外,如果某个维度的具体长度暂时未知,可以使用-1作为占位符,NumPy会自动计算该维度的大小。

以下是一个具体的应用示例:


A = np.reshape(np.arange(24),(4,3,2)) ##生成一个数值从0到23,维度为(4,3,2)的数组
print(A)
print('A的维度:',A.shape)
B = np.reshape(A,(-1,2))
print(B)
print('B的维度:',B.shape)

运行结果如下:


A:
[[[ 0 1]
 [ 2 3]
 [ 4 5]]

 [[ 6 7]
 [ 8 9]
 [10 11]]

 [[12 13]
 [14 15]
 [16 17]]

 [[18 19]
 [20 21]
 [22 23]]]

A的维度:(4,3,2)

B:


   [[ 0, 1],
    [ 2, 3],
    [ 4, 5],
    [ 6, 7],
    [ 8, 9],
    [10, 11],
    [12, 13],
    [14, 15],
    [16, 17],
    [18, 19],
    [20, 21],
    [22, 23]]

B的维度:(12, 2)

从结果可见,原始形状为(4, 3, 2)的三维数组被成功展开为形状为(12, 2)的二维数组,且最后一维元素的相对顺序保持不变。

以上关于Python利用np.reshape将三维数组展开为二维数组的实现方法即为全部内容,希望能对读者有所帮助,欢迎继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表