相邻元素之间的Numpy差异

时间:2012-06-19 06:59:49

标签: 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

有没有办法用Numpy重写这个函数?

2 个答案:

答案 0 :(得分:24)

diff方法:

a = range(5) # python list of numpy array
np.diff(a)

返回

array([1, 1, 1, 1])

答案 1 :(得分:0)

因为他说

<块引用>

#在我的例子中是 numpy 数组,

您可能想要使用 a[1:]-a[:-1],因为它更快。

> %%timeit a=np.random.rand(10000)
> a[1:]-a[:-1]
6.94 µs ± 188 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

> %%timeit a=np.random.rand(10000)
> np.diff(a)
15.7 µs ± 247 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)