相邻元素之间的Numpy差异

Art*_*nin 15 python numpy

我有计算纯python中相邻元素之间差异的算法:

    a = range(1000000) #it's numpy array in my case
    prev = a[0]
    b = [0, ]
    for i in a[1:]:
        b.append(i - prev)
        prev = i
Run Code Online (Sandbox Code Playgroud)

有没有办法用Numpy重写这个功能?

eum*_*iro 25

diff方法:

a = range(5) # python list of numpy array
np.diff(a)
Run Code Online (Sandbox Code Playgroud)

回报

array([1, 1, 1, 1])
Run Code Online (Sandbox Code Playgroud)

  • 另外,如果你不知道`np.diff`,你可以将它矢量化为`a [1:] - a [: - 1]`. (7认同)
  • `np.diff` 的结果缩短了一个元素。如果你愿意,你可以在它前面加上一个零。 (3认同)
  • @ecatmur - 好点。无论如何,`diff` 也适用于 python 列表。`a[1:] - a[:-1]` 仅适用于 numpy 数组。 (2认同)