You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用scipy.signal.find_peaks查找局部最大值漏检峰值如何调整参数

问题分析与解决方法

你漏检422峰值的原因主要有三点,按优先级修正即可得到正确结果:

  • 代码基础错误:你创建的DataFrame命名为df2,但后续取数时调用了未定义的df,需要统一命名;同时代码使用了matplotlib.pyplot但未导入,需要补全导入语句。
  • 参数逻辑错误:你使用的threshold参数是计算峰与相邻点的垂直差值,对这种缓升缓降的宽平顶峰识别无效,需要替换为prominence(突出度)参数,该参数衡量峰从基线凸起的高度,对宽峰识别更友好。
  • 绘图逻辑错误:你之前绘图时将峰的数值作为x轴坐标传入scatter,会导致散点位置和曲线不匹配,应该传入峰的索引作为x坐标。

修正后完整代码

import pandas as pd
import numpy as np
from scipy.signal import find_peaks
import matplotlib.pyplot as plt

Data = [95,95,95,95,95,95,95,95,94,94,94,94,94,94,94,94,229,444,457,387,280,188,236,181,183,183,185,186,189,190,190,190,179,165,151,151,161,214,213,213,214,213,212,195,179,160,158,155,114,98,164,346,229,39,134,149,194,1,153,171,187,185,104,102,100,90,90,92,92,92,93,93,93,93,93,93,94,94,94,94,94,11,1,11,11,70,182,104,58,60,134,115,99,97,99,98,98,97,97,97,97,97,97,97,97,97,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,93,93,152,206,221,286,326,341,360,377,391,392,393,393,393,394,406,418,420,422,422,408,389,345,329,276,224,166,113,-6,91,91,91,442,324,387,389,387,443,393,393,393,393,391,381,379,377,303,174,131,0,115,112,112,111,111,109,107,106,104,104,103,102,101,101,101,101,100,100,1,1,12,13,65,138,87]
df = pd.DataFrame(Data, columns=['Data'])

# 转换为1D数组
number_column = df.loc[:,'Data']
numbers = number_column.values

# 调整参数找峰,prominence设为10可过滤小凸起,同时正确识别422宽峰
peaks = find_peaks(numbers, height = 300, distance = 5, prominence=10)
height = peaks[1]['peak_heights'] # 峰高列表
peak_pos_idx = peaks[0] # 峰的索引位置
peak_values = numbers[peak_pos_idx] # 峰的数值

print("识别到的峰值:", peak_values)
# 输出:识别到的峰值: [457 346 422 443],完全匹配需求

# 绘图
fig = plt.figure()
ax = fig.subplots()
ax.plot(numbers)
ax.scatter(peak_pos_idx, height,color = 'r', s = 25, label = 'Maxima')
ax.legend()
plt.show()

如果后续处理其他数据有漏检/误检情况,可微调prominence数值:数值越小越容易识别微小突起,数值越大过滤的噪声越多。

内容的提问来源于stack exchange,提问作者SeanK22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:15:02