Как преобразовать несколько вложенных массивов в один многомерный массив? - PullRequest
0 голосов
/ 23 января 2019

У меня есть файл numpy a = np.load('test.npy') с этим вложенным массивом numpy:

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 на 4-мерный массив с формой: (6886, 3, 787, 6)?

1 Ответ

0 голосов
/ 24 января 2019

Я бы не хотел делать это таким образом, но все, что приходит на ум, - это создать второй массив желаемой формы и нарезать в него ваши данные.Я должен признать, что мне трудно понять формы каждого подмассива ... это кажется нелогичным.В любом случае, это решение будет медленным, но вы можете сделать это один раз, сохранить массив и никогда больше не делать.

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

Имеет ли это смысл / работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...