为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不平滑的情况下确定双峰直方图中的较低峰值?

如何在不平滑的情况下确定双峰直方图中的较低峰值?

天涯尽头无女友 2022-06-28 17:46:55
它很容易识别双峰分布右侧的最高峰。我需要确定以下双峰分布中的左侧(在我的数据中也总是较低)峰值:https ://drive.google.com/open?id=1n-Kp5loJze-L3vNgq7_3qFrmI-JiE20K这里,1 是左峰,2 是右峰。1 总是小于 2。使用scipy.signal.argrelmax,我已经能够找到所有相对峰值,但我需要在我的数据中特别提取左峰值(标记为 1)。附图中仅用 1 和 2 标记的两个峰的值,忽略所有其他已确定的峰。右边的峰 2 很容易提取,但我也想提取峰 1。
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

假设 x-bins 和 y-counts 是 np.arrays,沿着这些思路可能会起作用:


从 scipy.signal 导入 numpy.polynomial.polynomial 作为 poly 导入 argrelextrema


c = poly.polyfit(x,y,4)

fit = poly.polyval(x,c)

i = argrelextrema(fit, np.less)

这将为您提供双峰分布之间的分界点(大约)


那么您可以执行以下操作:


p1 = np.max(y[:i])

p2 = np.max(y[i:])

有时四次不适合您想要的方式,所以我很欣赏这可能难以实施,但可能会沿着这些路线,甚至是三角拟合?


希望能帮助到你


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信