Объединить неравный массив 2D numpy в массив 3D - PullRequest
0 голосов
/ 26 марта 2020

Как два или более 2D numpy массива могут быть объединены его строками.

У меня есть два numpy массива x и y.

х и у имеют различную форму. Только число строк = 14 одинаково в обоих массивах:

x = np.ones(14).reshape(14,1)

array([[1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.],
       [1.]])

y = np.zeros(42).reshape(14,3)

array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

Я хочу создать 3D-массив из двух или более 2D-массивов.

Желаемый результат:

[[[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]
 [[1.], [0., 0., 0.]]]

1 Ответ

0 голосов
/ 26 марта 2020

вы можете использовать цикл понимания и вы можете сбросить list(), если вы в порядке с выводом списка массивов

import numpy as np

x = np.ones([14,1])
y = np.zeros([14,3])

arr1 = [[list(x[i]),list(y[i])] for i in range(14)]

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