向量化减去下一个元素并添加前一个元素的 numpy 一维数组函数?

Vectorize numpy 1D array function that substracts the next element and adds the previous?

我有一个简单的一维 numpy 数组,如下所示:

np.array([2,1,3,5,1])

如何矢量化一个函数,该函数对于每个元素都减去下一个元素并添加前一个元素?在上面的例子中,我期望 returns:

[?, 1-3+2, 3-5+1, 5-1+3, ?]
=[?, 0, -1, 7, ?]

,在哪里?意味着我不关心元素的值。此操作将 运行 在具有 100 万个元素(类型 double)的一维 np.array 中。

正如评论中所建议的那样,切片将满足您的需要:

a=np.array([2,1,3,5,1])
print(a[1:-1]+a[:-2]-a[2:])

结果将是包含您关心的值的数组 [0,-1,7]。