如何将2D数组“分片”为3D数组

2024-06-06 17:43:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数组,看起来像: test = np.zeros (7110, 514)

我需要将前90个值(行)“解包”到第二维的第一个值中,将第二个90个值(行)解包到第二维的第二个值中,等等,以便所需的输出具有以下形状:

desired_output = np.zeros(90, 79, 514)

我试过这样的方法:

a = np.split(test, 90, axis=1)
test1 = np.reshape(a, (79,90, 514))

但它把我拖垮了一整只兔子。。。谢谢你的帮助


Tags: 方法testoutputnpzeros数组split形状
1条回答
网友
1楼 · 发布于 2024-06-06 17:43:43

我不知道我是否理解这个问题,你是否有7110行514个元素,每行7110行要“分组”成90 x 79行

因为你可以这样做:

>>> np.array(range(24)).reshape((6, 4))
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])

这是6行,每行4个元素

>>> np.array(range(24)).reshape((6, 4)).reshape(3, 2, 4)
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [12, 13, 14, 15]],

       [[16, 17, 18, 19],
        [20, 21, 22, 23]]])

我们保持行的原样,但不是6行,而是3x2行

所以你需要的代码是:

desired_output = a.reshape(90, 79, 514)

相关问题 更多 >