不必显式地处理第一个赋值就可以构建numpy数组的python方法?

2024-04-19 20:34:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现自己经常遇到这种编码模式:

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

案子


Tags: in编码forifnp模式randomblock
1条回答
网友
1楼 · 发布于 2024-04-19 20:34:56

不要用dstack(或任何串联变量)累加数组-使用list append

block = []
for idx, M in enumerate(matrices):
    block.append(M)

然后把它们堆在后面

block = np.dstack(block)   # concatenate(block, axis=2)

这会更快,并避免这种初始化尴尬

相关问题 更多 >