如何使用Numpy Tile函数获得此结果

时间:2017-03-16 20:33:07

标签: python-2.7 numpy

我想以一个给定的方式广播数组。我现在在numpy中的tile()函数可以用于广播我尝试了但是不能生成所需的输出。

input=[ [1,2],
        [3,4],
        [4,5] ]   #shape(3X2)
numpy.tile(input,----)
out put= [ [ [1,2],
             [1,2] 
           ],
           [ [3,4],
             [3,4]
           ],
           [ [4,5],
             [4,5],
           ]
         ] #shape(3,2,2)

2 个答案:

答案 0 :(得分:2)

使用np.repeat -

的一种方法
np.repeat(a,2,axis=0).reshape((a.shape) + (2,))

另一个np.repeat -

np.repeat(a[:,None],2,axis=1) # Or use np.newaxis in place of None

使用np.tile -

np.tile(a,2).reshape((a.shape) + (2,))

答案 1 :(得分:1)

另一种选择是将input与自身和transpose

叠加在一起
np.stack([input] * 2).transpose(1, 0, 2)

array([[[1, 2],
        [1, 2]],

       [[3, 4],
        [3, 4]],

       [[4, 5],
        [4, 5]]])