Как «нарезать» 2D массив в 3D массив - PullRequest
0 голосов
/ 28 мая 2019

У меня есть массив, который выглядит следующим образом: 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))

но это просто потянуло меня на кролика целиком ... Спасибо за любую помощь!

1 Ответ

1 голос
/ 28 мая 2019

Не знаю, понимаю ли я вопрос, у вас есть 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...