繁体   English   中英

如何将多个嵌套的numpy数组更改为一个多维数组?

[英]How to change several nested numpy arrays into one multidimensional array?

我有一个带有这些嵌套的numpy数组的numpy a = np.load('test.npy')文件:

In [21]: a.shape
Out[21]: (6886, 3)

In [22]: a[0].shape
Out[22]: (3,)

In [23]: a[0][0].shape
Out[23]: (787, 6)

有没有简单的方法可以将a更改a形状为(6886, 3, 787, 6)的4维数组?

我不愿意这样做,但是想到的只是制作所需形状的第二个数组并将数据切成该数组。 我不得不承认,我在理解每个子阵列的形状时遇到了困难……这似乎与直觉相反。 无论如何,此解决方案将很慢,但是您只能执行一次并保存阵列,而不再执行。

import numpy as np

a = np.load('test.npy')
b = np.full((6886, 3, 787, 6), np.nan)

for row in range(6886):
    for col in range(3):
        tmp = a[row][col]
        b[row, col, :tmp.shape[0], :tmp.shape[1]] = tmp

这有意义吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM