两个波谷之间的曲线下面积而不是两点之间的积分
area under the curve between two troughs rather than integrating between the two points
我有一个 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
值。
与
相同
divide Y into negative and non negative groups and do the integral for
each group separately
但速度更快。
从数学上讲它应该可行...但我不知道这是否是您想要的。
希望对您有所帮助。 :)
我有一个 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
值。
与
divide Y into negative and non negative groups and do the integral for each group separately
但速度更快。
从数学上讲它应该可行...但我不知道这是否是您想要的。
希望对您有所帮助。 :)