我有一个NumPy数组的时间序列x(t)
。我的任务告诉我,我需要随时间找到这些数据的积分。
我该怎么做?它不是我需要集成的功能,它是一个数据列表。
答案 0 :(得分:0)
这取决于问题的陈述。一个粗鲁的方法就是这样的
import numpy as np
import scipy as sp
t = np.linspace(-1, 1, 100)
x = t*t
delta = t[1] - t[0]
I = sum(delta*x)
答案 1 :(得分:0)
您可以使用 Simpson的规则。对您执行此操作的例程是simps
中的spicy.integrate
。
>>> help(scipy.integrate.simps)
Help on function simps in module scipy.integrate.quadrature:
simps(y, x=None, dx=1, axis=-1, even='avg')
Integrate y(x) using samples along the given axis and the composite
Simpson's rule. If x is None, spacing of dx is assumed.
If there are an even number of samples, N, then there are an odd
number of intervals (N-1), but Simpson's rule requires an even number
of intervals. The parameter 'even' controls how this is handled.