curve_fit的文档:https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html

注意:拟合分布是 已知分布,拟合参数!

官方教程

"""拟合任意分布"""
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import numpy as npdef func(x, a, b, c):  # 用来拟合的方程return a * np.exp(-b * x) + cdef get_xy():xdata: np.ndarray = np.linspace(0, 4, 50)  # x值y = func(xdata, 2.5, 1.3, 0.5)rng = np.random.default_rng()y_noise = 0.2 * rng.normal(size=xdata.size)ydata: np.ndarray = y + y_noise  # 拟合的数据 yreturn xdata, ydataif __name__ == '__main__':x_value, y_value = get_xy()popt, pcov = curve_fit(func, x_value, y_value)# 绘图plt.plot(x_value, y_value, 'b-', label='data')plt.plot(x_value, func(x_value, *popt), 'r-',label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))# 这个写法是加一个限制:0 <= a <= 3, 0 <= b <= 1 and 0 <= c <= 0.5popt_2, pcov_2 = curve_fit(func, x_value, y_value, bounds=([0, 0, 0.5], [3., 1., 1]))plt.plot(x_value, func(x_value, *popt_2), 'g--',label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt_2))plt.xlabel('x')plt.ylabel('y')plt.legend()plt.show()

简易的用法

更换

from scipy.optimize import curve_fit
import numpy as npdef func(x, a, b, c):  # 用来拟合的方程return a * np.exp(-b * x) + cdef get_xy():xdata: np.ndarray = np.linspace(0, 4, 50)  # x值y = func(xdata, 2.5, 1.3, 0.5)rng = np.random.default_rng()y_noise = 0.2 * rng.normal(size=xdata.size)ydata: np.ndarray = y + y_noise  # 拟合的数据 yreturn xdata, ydataif __name__ == '__main__':x_value, y_value = get_xy()popt, pcov = curve_fit(func, x_value, y_value)  # 拟合分布y_pred = func(x_value, *popt)  # 预测结果

python使用curve_fit拟合任意分布相关推荐

  1. python 求 gamma 分布_用(python)Scipy拟合gamma分布

    我对ss.gamma.rvs函数不满意,因为它可以生成负数,这是gamma分布不应该有的.所以我通过期望值=平均值(data)和方差=var(data)对样本进行了拟合(详见维基百科),并编写了一个函 ...

  2. python 高斯函数拟合_在python中拟合任意高斯函数,消耗大量内存

    我试图(在python中)将一系列任意数量的高斯函数(由一个仍在改进的简单算法确定)拟合到一个数据集.对于我当前的样本数据集,我有174个高斯函数.我有一个进行拟合的过程,但基本上是复杂的猜测和检查, ...

  3. 使用Python进行数据拟合

    使用Python进行数据拟合 文章目录 使用Python进行数据拟合 多项式拟合 非多项式拟合 多项式拟合 任何一个函数都可以拆分成近似于这个函数的多项式表达. 多项式拟合需要用到的函数是numpy库 ...

  4. 高斯模型混合模型–理论上可以拟合任意概率密度分布

    高斯混合模型   给定变量 xxx 的有限个观测数据 x1,x2,x3,⋯,xnx_1,x_2,x_3,\cdots,x_nx1​,x2​,x3​,⋯,xn​,对变量 xxx 的概率分布 p(x)p( ...

  5. chatgpt赋能python:Python实现直线拟合及求斜率

    Python实现直线拟合及求斜率 什么是直线拟合 直线拟合是一种数据处理方法,将一组数据点拟合成一条直线的形式,以求出其中的规律性关系,从而更好地理解数据点之间的相关性. 直线拟合的应用场景 直线拟合 ...

  6. boost::python模块实现使用任意 Python 序列创建 ndarray 的示例

    boost::python模块实现使用任意 Python 序列创建 ndarray 的示例 实现功能 C++实现代码 实现功能 boost::python模块实现使用任意 Python 序列创建 nd ...

  7. l2正则化python_机器学习入门之机器学习之路: python线性回归 过拟合 L1与L2正则化...

    本文主要向大家介绍了机器学习入门之机器学习之路: python线性回归 过拟合 L1与L2正则化,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. 正则化:    提高模型在未知数据上的 ...

  8. Python总结:保留小数点任意位round函数不够精确

    QUESTION:Python总结:保留小数点任意位round函数不够精确 ANWSER: 目录 QUESTION:Python总结:保留小数点任意位round函数不够精确 ANWSER: 一:使用r ...

  9. 【python】——数据分布拟合工具包fitter

    1.安装 pip(3) install fitter 2.例子 # 数据生成 from scipy import stats data = stats.gamma.rvs(2, loc=1.5, sc ...

最新文章

  1. Java序列化闲聊:序列化和Json
  2. Excel:python结合Excel使用技巧经验总结之(将python输出的等间隔列数据直接粘贴复制存到物理表格内等)图文教程之详细攻略
  3. Collections.sort()泛型集合排序的使用,和自定义类实现Comparable<T>接口重写compareTo(T o)方法完成Collections.sort()排序,以及自定义排序规则
  4. SpringBoot 配置Tomcat运行
  5. JAVA WEB框架的错误体系
  6. [Yarn] Yarn local-dirs are bad 导致节点处于不健康状态
  7. Hadoop、spark、Flink、Blink、storm介绍
  8. Lucene 原理分析之-全文检索的一般过程-笔记
  9. android开发GPS定位测试(附效果图和示例)【转】
  10. ffmpeg下载rtmp flv
  11. Linux之进程处理方式
  12. 利用Python进行百度文库内容爬取(一)
  13. 黑马程序员 HTML基础
  14. AlphaGo算法论文 神经网络加树搜索击败李世石
  15. 使用ArcGIS软件进行投影变换和坐标校正
  16. dell 恢复介质_使用 Dell 恢复介质重新安装操作系统
  17. linux根文件系统 /etc/shadow文件详解
  18. P1308 统计单词数 洛谷
  19. jquery为dom元素追加样式,使用addClass不生效
  20. WiFi配适器Linux,centos7 打开wifi适配器(wifiadapter)和安装centos7 需要注意的

热门文章

  1. U3D性能分析 Profiling
  2. Python-OpenCV中的cv2.threshold
  3. FPGA时序约束、时序分析(一)
  4. Ruby1.9.3 Rails 3.2.3安装
  5. 精通CSS高级Web标准解决方案(第2版)学习笔记
  6. python入门应该学什么专业好_真的能半个月学会Python吗?(文末附python入门进阶教程)...
  7. class.forname找不到类_自媒体情感类文章素材怎么找?
  8. java网络编程_Java网络编程进阶:通过JSSE创建安全的数据通信
  9. php判断是不是纯汉字,php判断输入是否是纯数字,英文,汉字的方法
  10. 计算机基础知识 音频,计算机基础知识(总结+试题).pdf