Python numpy阵列元素的累积积分

Python numpy阵列元素的累积积分,python,arrays,numpy,scipy,integration,Python,Arrays,Numpy,Scipy,Integration,我想介绍以下类型的集成: 假设我有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]然后对数组的前两个元素进行积分,然后对前三个元素进行积分,以此类推。因此,最终对于这个数据集,我将得到 d = [2 3 8 15] 我尝试了一些

我想介绍以下类型的集成:

假设我有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]
然后对数组的前两个元素进行积分,然后对前三个元素进行积分,以此类推。因此,最终对于这个数据集,我将得到

d = [2 3 8 15]

我尝试了一些事情,但没有运气;我对编写代码相当陌生。

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

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)

看起来你想要的是类似于cumtrapz的东西,但是使用了辛普森规则而不是梯形规则。那么你是说
d[i]=simps(b[:i+1],a[:i+1])
?编辑:现在我看到@kikocorreoso已经做出了这样的解释。我想你想要你的范围通过
len(a)
,所以你想要
范围(2,len(a)+1)
,或者更好的是,
范围内的I(1,len(a)):d[I]=…[:I+1]