【问题标题】:Cumulative integration of elements of numpy arraysnumpy数组元素的累积积分
【发布时间】:2015-11-27 05:27:55
【问题描述】:

我想进行以下类型的集成:

假设我有 2 个数组

a = np.array[1,2,3,4]
b = np.array[2,4,6,8]

我知道如何使用以下方法集成这些:

c = scipy.integrate.simps(b, a)

c = 15 用于上述数据集。

我想做的是将每个数组的第一个元素相乘并添加到名为 d 的新数组中,即 a[0]*b[0] 然后将前 2 个元素整合到数组中,然后整合前 3 个元素,依此类推。所以最终这个数据集,我会得到

d = [2 3 8 15]

我尝试了一些东西,但没有运气;我对编写代码很陌生。

【问题讨论】:

  • 您似乎想要cumtrapz (docs.scipy.org/doc/scipy/reference/generated/…) 之类的东西,但使用的是辛普森规则而不是梯形规则。
  • 你是说d[i] = simps(b[:i+1], a[:i+1])?编辑:现在我看到@kikocorreoso 做出了这种解释。

标签: python arrays numpy scipy integration


【解决方案1】:

如果我正确理解了您的需求,您可以执行以下操作:

import numpy as np
from scipy import integrate

a = np.array([2,4,6,8])
b = np.array([1,2,3,4])
d = np.empty_like(b)
d[0] = a[0] * b[0]
for i in range(2, len(a) + 1):
    d[i-1] = integrate.simps(b[0:i], a[0:i])
print(d)

【讨论】:

  • 我认为你希望你的范围通过len(a),所以你想要range(2, len(a)+1),或者更好的是for i in range(1, len(a)): d[i] = ...[:i+1]
猜你喜欢
  • 2017-04-02
  • 1970-01-01
  • 2015-04-27
  • 2019-05-04
  • 2015-11-04
  • 2012-05-31
  • 1970-01-01
  • 2018-08-17
相关资源
最近更新 更多