numpy 中的数字积分

新手上路,请多包涵

我想做一些非常简单的事情,但我无法在 numpy 的深处找到它。我想在数值上连续积分一个由其值给出的函数( 而不是 其公式!)。这意味着我只需要一个数组来保存输入数组开头的总和。例子:

输入:

 [ 4, 3, 5, 8 ]

输出:

 [ 4, 7, 12, 20 ]  # [ sum(i[0:1]), sum(i[0:2]), sum(i[0:3]), sum(i[0:4]) ]

听起来很简单,所以我希望这一定很容易,因为我目前无法找到一些 numpy 功能。

我发现了类似 scipy.integrate.quad() 的东西,但它似乎在给定范围内(从 a 到 b)积分并且返回单个值。我需要一个数组作为输出。

原文由 Alfe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 500
2 个回答

您正在寻找 numpy.cumsum

    >>> numpy.cumsum([ 4, 3, 5, 8 ])
   array([ 4,  7, 12, 20])

原文由 sfjac 发布,翻译遵循 CC BY-SA 3.0 许可协议

您只需要 numpy.cumsum()

 import numpy as np
a = np.array([ 4, 3, 5, 8 ])
print np.cumsum(a) # prints [ 4  7 12 20]

原文由 ImportanceOfBeingErnest 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题