【问题标题】:Scipy, Pandas find maximum peak within subset of peaksScipy,Pandas 在峰子集中找到最大峰
【发布时间】:2022-01-13 14:19:09
【问题描述】:

有一个复杂的场景,希望解决方案很简单!

我想在设定的加速时间范围内找到最高峰。

加速度定义为超过 140。加速度在超过 140 时开始,在低于 140 时停止。

然后我想做的是找到该加速度内的最高峰,即如果一个加速度内有 5 个峰值,则只标记最高的一个。

这是我目前所拥有的:

# Find the accel peaks that are over 140
# The peaks
peaks, _ = find_peaks(df['value'])

# new column with peak tags
df.at[[index for index in peaks], 'accel_peaks'] = 'peak'

# Only keep those which are above 140
df['accel_peaks'] = np.where(df['value'] >= 140, df['accel_peaks'], np.nan)

我希望 find_peaks 中有一个变量,或者我可以使用 peak_prominences。

感谢任何帮助/指导谢谢!

【问题讨论】:

    标签: python pandas scipy


    【解决方案1】:

    您可以直接在find_peaks 中指定最小峰高(参见find_peaks

    peaks, _ = find_peaks(df['value'], height=140)
    

    然后,要找到最高峰,只需对峰值返回的峰值索引进行排序并取第一个,类似于(尚未测试):

    peaks.sort(lambda x: df['value'][x])
    

    【讨论】:

      猜你喜欢
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 2010-12-15
      • 1970-01-01
      • 2019-11-07
      • 2019-08-12
      相关资源
      最近更新 更多