我有一个X(x(和Y(信号(数据的列表,我用它来计算波谷:
from scipy.signal import find_peaks
troughs, _= find_peaks(-signal)
现在我想计算第一个波谷和最后一个波谷之间的积分
from scipy.interpolate import InterpolatedUnivariateSpline
x = range(1,len(signal)+1)
f = InterpolatedUnivariateSpline(x, y)
f.integral(peaks[1], peaks[-1])
which gives me: -1.477
鉴于此值为负值与它正在计算积分的事实一致。但是曲线下的面积呢?我们知道它们彼此不相等,因为积分可能是负数,但AUC不能。 有没有简单的方法来计算两个不同点之间的AUC?我能想到的一种方法是将Y分为负组和非负组,并分别对每个组进行积分。
您可以使用函数的abs
值。 与
Y 分为负组和非负组,并对 每个组分别
但更快。
从数学上讲,它应该可以工作...但我不知道这是否是你想要的。
希望对您有所帮助。 :)