tianyi_6677 2018-12-28 07:56 采纳率: 0%
浏览 3251

Python能不能实现像Origin中的那样分峰和多峰高斯拟合?

Python能不能实现像Origin中的那样分峰和多峰高斯拟合?

如图,需要提取各个小的峰

图片说明

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 06:09
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    可以使用numpy库中的scipy模块来实现这样的功能。以下是一个简单的例子:

    import numpy as np
    from scipy.optimize import curve_fit
    
    def gaussian(x, A, mu, sigma):
        return A * np.exp(-(x - mu)**2 / (2 * sigma**2))
    
    # 假设你的数据已经保存在list中,例如data = [0.0, 5, 6, ..., 1000]
    data = [0.0] + list(np.arange(5, 21, 0.5)) + [1000]
    
    # 计算每个点处的积分
    intensities = np.trapz(data)
    
    # 使用最小二乘法进行拟合
    popt, pcov = curve_fit(gaussian, data, intensities)
    
    print(popt)
    

    这段代码首先定义了一个gaussian函数,然后计算了每个点的积分(因为高斯分布的积分等于它的面积),并将这些值作为输入给curve_fit函数。这个函数会尝试找到一个最优的参数组合(A, mu, sigma)来拟合这些数据。

    注意:这个例子是基于原始数据的,如果你的数据不是这个格式,你可能需要对它做一些额外的处理。此外,这个方法只适用于单峰的情况,如果数据有多个峰,你需要将数据分成两部分,并分别求解。

    评论
    编辑
    预览

    报告相同问题?

    悬赏问题

    • ¥15 求一个按键录像存储到内存卡的ESP32CAM代码
    • ¥15 如何单独修改下列canvas推箱子代码target参数?,插入图片代替其形状,就是哪个绿色的圆圈每关用插入的图片替代
    • ¥20 四叉树的创建和输出问题
    • ¥15 使用okhttp分片上传文件,总是超时,到底是哪里的问题
    • ¥15 javaweb连接数据库,jsp文件加载不出来
    • ¥15 matlab关于高斯赛德尔迭代的应用编撰。(相关搜索:matlab代码|迭代法)
    • ¥15 损失匹配问题,求解答
    • ¥15 3500常用汉字书法体检测数据集下载
    • ¥15 odoo17在制造模块或采购模块良品与次品如何分流和在质检模块下如何开发
    • ¥15 Qt音乐播放器的音乐文件相对路径怎么写
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部