Python 如何从一维阵列中获得正确的波峰和波谷

Python 如何从一维阵列中获得正确的波峰和波谷,python,arrays,numpy,Python,Arrays,Numpy,我们试图从一维阵列中找到波峰和波谷 我们使用的是numpy.r \(),它可以从一个数组中找到每个峰和谷,但我们只需要对应于膈肌运动的放松点和收缩点的峰和谷 是否有任何函数拒绝错误的最小和最大点 请参见下面的一个坏例子: 您有高频、小振幅振荡,这对于峰值查找是不可取的。在搜索峰值之前过滤掉它们。一个简单的过滤器来自scipy.ndimage。在你的星盘上,似乎 smooth_signal = ndimage.gaussian_filter1d(signal, 5) 应大致正确(窗口大小应足够大

我们试图从一维阵列中找到波峰和波谷

我们使用的是
numpy.r \()
,它可以从一个数组中找到每个峰和谷,但我们只需要对应于膈肌运动的放松点和收缩点的峰和谷

是否有任何函数拒绝错误的最小和最大点

请参见下面的一个坏例子:


您有高频、小振幅振荡,这对于峰值查找是不可取的。在搜索峰值之前过滤掉它们。一个简单的过滤器来自scipy.ndimage。在你的星盘上,似乎

smooth_signal = ndimage.gaussian_filter1d(signal, 5)
应大致正确(窗口大小应足够大以抑制不必要的振荡,但足够小以不扭曲实际峰值)。然后将峰值查找算法应用于平滑信号


有更复杂的过滤器,但这些过滤器需要一些时间来学习使用。

我们正在尝试将一种新的峰值查找算法合并到SciPy中,但您仍可以查看一下,并希望能给我们一些反馈:)“正在使用numpy.r_389;()并查找每个峰值”。认真地这不是一种峰值查找方法。