Как преобразовать массив numpy формы (4, 1, 1) в (4, 2, 1)? - PullRequest
0 голосов
/ 25 января 2020

Предположим, у меня есть массив numpy

arr = np.array([1, 4, 4, 5]).reshape((4, 1, 1))

Теперь я хочу изменить arr в arr1 так, чтобы

>>> print(arr1)
[[[1]
  [1]]
 [[4]
  [4]]
 [[4]
  [4]]
 [[5]
  [5]]]

>>> arr1.shape
(4, 2, 1)

Пожалуйста, помогите, я действительно застрял в это.

1 Ответ

0 голосов
/ 26 января 2020
In [484]: arr = np.array([1, 4, 4, 5]).reshape((4, 1, 1))                                        
In [485]: np.concatenate([arr,arr],axis=1)                                                       
Out[485]: 
array([[[1],
        [1]],

       [[4],
        [4]],

       [[4],
        [4]],

       [[5],
        [5]]])
In [486]: np.repeat(arr,2,1)                                                                     
Out[486]: 
array([[[1],
        [1]],

       [[4],
        [4]],

       [[4],
        [4]],

       [[5],
        [5]]])

Скорости аналогичны; с небольшим перевесом для repeat, но недостаточно для борьбы. np.hstack - конкатенация по оси 1.

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