我发现自己经常遇到这种编码模式:
matrices = np.random.rand(10, 10, 10)
block = np.array([])
for idx, M in enumerate(matrices):
print(M.shape)
if idx == 0:
block = M
else:
block = np.dstack((block, M))
这只是一个例子,我知道在这种情况下我可以做block = matrices
。有没有更好的方法来做到这一点,而无需处理
if idx == 0:
block = M
情况?
答案 0 :(得分:0)
不要使用dstack
(或任何连接variantes)累积数组 - 使用list append
block = []
for idx, M in enumerate(matrices):
block.append(M)
然后在
之后“堆叠”它们block = np.dstack(block) # concatenate(block, axis=2)
这样更快,并避免了这种初始化的尴尬。