Python 使用平铺从二维数组构造三维数组
我有一个数组Python 使用平铺从二维数组构造三维数组,python,numpy,Python,Numpy,我有一个数组arr=np.array([0.0,0.0,1.0]) 我想压缩以下形状的数组promo\u class.shape,它是(2,3,3) 我想创建形状的重复数组(2,3,3) 你知道如何使用np.tile功能实现吗?只需用于视图- In [142]: arr = np.array([0.0, 0.0, 1.0]) In [144]: np.broadcast_to(arr,(2,3,3)) Out[144]: array([[[0., 0., 1.], [0.,
arr=np.array([0.0,0.0,1.0])
我想压缩以下形状的数组promo\u class.shape
,它是(2,3,3)
我想创建形状的重复数组(2,3,3)
你知道如何使用np.tile
功能实现吗?只需用于视图
-
In [142]: arr = np.array([0.0, 0.0, 1.0])
In [144]: np.broadcast_to(arr,(2,3,3))
Out[144]:
array([[[0., 0., 1.],
[0., 0., 1.],
[0., 0., 1.]],
[[0., 0., 1.],
[0., 0., 1.],
[0., 0., 1.]]])
我们为什么要使用视图
?
因为作为一个视图,它没有额外的内存开销,因此在运行时实际上是空闲的-
In [148]: arr = np.random.rand(300)
In [149]: %timeit np.broadcast_to(arr,(200,300,300))
100000 loops, best of 3: 3.13 µs per loop
如果需要具有自己内存空间的输出,请附加.copy()
如果您致力于
np.tile
-
In [174]: np.tile(arr,(2,3,1))
Out[174]:
array([[[0., 0., 1.],
[0., 0., 1.],
[0., 0., 1.]],
[[0., 0., 1.],
[0., 0., 1.],
[0., 0., 1.]]])
有没有可能用np.tile函数做同样的事情?谢谢,这就是我要找的。我需要瓷砖作为Keras后端只支持瓷砖功能。
In [174]: np.tile(arr,(2,3,1))
Out[174]:
array([[[0., 0., 1.],
[0., 0., 1.],
[0., 0., 1.]],
[[0., 0., 1.],
[0., 0., 1.],
[0., 0., 1.]]])