【问题标题】:Vectorize numpy 1D array function that substracts the next element and adds the previous?Vectorize numpy 1D array 函数减去下一个元素并添加前一个元素?
【发布时间】:2020-05-02 23:07:45
【问题描述】:

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

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

如何对一个函数进行矢量化,该函数对于每个元素减去下一个元素并添加上一个元素?在上述情况下,我希望得到一些回报:

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

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

【问题讨论】:

  • 试试类似:a[1:-1]+a[:-2]-a[2:]

标签: python numpy vectorization


【解决方案1】:

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

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

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

【讨论】:

  • 我最终使用了一个卷积,它也是一种矢量化操作并且内存要求较低,但这个答案也很有效
猜你喜欢
  • 2021-12-09
  • 1970-01-01
  • 2019-09-13
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
  • 2019-01-08
相关资源
最近更新 更多