我想以一个给定的方式广播数组。我现在在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)
答案 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]]])