如何将形状(4,1,1)的numpy数组重塑为(4,2,1)?

时间:2020-01-25 13:55:21

标签: numpy

假设我有一个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 :(得分:0)

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轴上的串联。