【问题标题】:Numpy slicing result different than for loopNumpy 切片结果与 for 循环不同
【发布时间】:2016-05-30 19:24:22
【问题描述】:

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

谁能解释一下,为什么下面的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])

【问题讨论】:

  • Hm 范围从 1、2 到 N-2,包括您的情况。在没有更多上下文的情况下,许多切片和索引对我来说很烦人。是否有可能贡献一个简短的最小完整python脚本,说N == 4练习这两种算法?那太好了!

标签: python numpy slice


【解决方案1】:

由于右侧的范围不包含在内,我假设您必须将 numpy 代码更改为

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

使其与循环版本匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多