它很容易识别双峰分布右侧的最高峰。我需要确定以下双峰分布中的左侧(在我的数据中也总是较低)峰值: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:])
有时四次不适合您想要的方式,所以我很欣赏这可能难以实施,但可能会沿着这些路线,甚至是三角拟合?
希望能帮助到你
添加回答
举报
0/150
提交
取消