使用tile构造numpy数组

时间:2011-12-07 18:22:02

标签: arrays numpy repeat tile construction

我的问题是:如何从 a 使用磁贴获得 b

a = np.array([[1,2,-6],[-4,5,6],[10,8,-1]])

b = np.array([
          [[1,2,-6],[1,2,-6],[1,2,-6]],
          [[-4,5,6],[-4,5,6],[-4,5,6]],
          [[10,8,-1],[10,8,-1],[10,8,-1]]
         ])

我是这样做的,但我想要更好的东西:

b = np.repeat(a, 3, axis=0).reshape(3,3,3)

2 个答案:

答案 0 :(得分:1)

您可以使用广播:

b = a.reshape((3,1,3)) * np.ones((1,3,1))

答案 1 :(得分:1)

您已经拥有了适用于tile的语法:b = np.tile(a,3).reshape((3,3,3))