我对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])
答案 0 :(得分:2)
因为右侧的范围是非包容性的,我假设您必须将您的numpy代码更改为
B[1:N-1,i] = -(2*x[1:N-1,i] - x[0:N-2,i] - x[2:N,i])
使其与循环版本匹配。