Numpy切片结果与for循环不同

时间:2016-05-30 19:24:23

标签: python numpy slice

我对Python中的numpy /切片有一些疑问。

任何人都可以解释为什么以下for循环和切片方法不会产生相同的B?

for n in range(1,N-1):
    B[n,i] = -(2*x[n,i] - x[n-1,i] - x[n+1,i])

B[1:N-2,i] = -(2*x[1:N-2,i] - x[0:N-3,i] - x[2:N-1,i])

1 个答案:

答案 0 :(得分:2)

因为右侧的范围是非包容性的,我假设您必须将您的numpy代码更改为

B[1:N-1,i] = -(2*x[1:N-1,i] - x[0:N-2,i] - x[2:N,i])

使其与循环版本匹配。