首页 > 解决方案 > 从这个错误中,如何理解python中的np.arrays?

问题描述

假设我有两个 numpy 数组:

a = np.zeros(N, N, N)
b = np.zeros(N+1, N+1, N+1)

然后我想将'a'广播到'b',这只是如果我使用(1)

for k1 in range(N):
    for k2 in range(N):
        for k3 in range(N):
            b[k1][k2][k3] = a[k1][k2][k3]

这很好用。但我想让它更简单更快,所以我使用(2)

b[0:N][0:N][0:N] = a[0:N][0:N][0:N]

然后发生错误(如果我设置 N = 10 ):

ValueError:无法将输入数组从形状(10,10,10)广播到形状(10,11,11)

好的,从为什么用括号和逗号索引numpy数组的行为不同?

标签: pythonfortran

解决方案


推荐阅读