Arrays 重复堆叠Numpy阵列

Arrays 重复堆叠Numpy阵列,arrays,numpy,stack,repeat,Arrays,Numpy,Stack,Repeat,这可能是一个简单的问题,但我正试图找到答案;) 我想创建一个3D numpy数组,它是另一个子数组的重复副本,具有给定数量的副本 在1-D中,这就是我想要做的:a=[0,1,0],因子=3导致b=[0,1,0,0,1,0,1,0] 到目前为止,我的想法是: -创建更大的阵列并将子阵列切片到其中(是否有可能在切片内部以某种方式执行此操作?) -建立一个列表并使用hstack、vstack和dstack for i in range(factor): array_list.append(da

这可能是一个简单的问题,但我正试图找到答案;) 我想创建一个3D numpy数组,它是另一个子数组的重复副本,具有给定数量的副本

在1-D中,这就是我想要做的:a=[0,1,0],因子=3导致b=[0,1,0,0,1,0,1,0]

到目前为止,我的想法是: -创建更大的阵列并将子阵列切片到其中(是否有可能在切片内部以某种方式执行此操作?)

-建立一个列表并使用hstack、vstack和dstack

for i in range(factor):
    array_list.append(data)
data=np.hstack(array_list)
for i in range(factor):
    array_list.append(data)
data=np.vstack(array_list)
for i in range(factor):
    array_list.append(data)

这是可行的,但似乎不是一个好的、可读的解决方案,甚至是非常需要内存的解决方案,因为列表必须在每个堆叠过程之后重新创建。对我来说,3D案例很有趣,但对于讨论来说,即使在更高的维度上也能做到这一点,这可能很有趣。

您可能想看看
np.tile

对于简单的1d示例:

In [1]: a=[0,1,0]
In [3]: np.tile(a,3)
Out[3]: array([0, 1, 0, 0, 1, 0, 0, 1, 0])
请尝试以下操作:

import numpy as np

a = np.random.random((2,2))
b = np.dstack((a,a))

for i in range(1):
    b = np.dstack((b,a))

有时候就是这么简单;)谢谢。哦,我确实把你的问题搞错了。我想到了3D阵列。