这可能是一个简单的问题,但我试图得到答案;)我想创建一个 3D numpy 数组,它是另一个子数组的重复副本,具有给定数量的副本。
在一维中,这就是我想要做的: a=[0,1,0], factor=3 导致 b=[0,1,0,0,1,0,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 案例很有趣,但对于讨论来说,让它在更高维度上工作可能会很有趣。