使用scipy的正交距离回归的python模块,使数据拟合变得容易。

python-fit的Python项目详细描述


DownloadsLatest Version

python fit模块是为需要适应数据的人设计的 频繁而迅速。该模块不是为大量 对最小化过程的控制,但试图使拟合 数据简单,无痛。如果你想一天拟合几次数据, 每天,你只想看看你做的衣服是否合身 很好的对照你的数据,看看这个软件。如果你非常想要的话 从统计学上看,你可以考虑 看别处(看一眼)。

使用python-fit,您可以完成工作。

功能

  • 内置公共拟合曲线
  • 智能计算的内置函数的默认参数 使用你的数据。
  • 也适合用户定义的函数。
  • 一个随时准备好的契合总是令人愉快地返回。
  • 获取拟合参数和相关错误。
  • 卡方残差。

示例用法

适合内置功能:

frompylabimport*ion()importfitfromnumpyimportrandom,exprandom.seed(0)# Create some data to fitx=arange(-10,10,.2)# A gaussian of height 10, width 2, centered at zero. With noise.y=10*exp(-x**2/8)+(random.rand(100)-0.5)# No need to provide first guess at parameters for fit.gaus(xf,yf),params,err,chi=fit.fit(fit.gaus,x,y)print"N:    %.2f +/- %.3f"%(params[0],err[0])print"N:    %.2f +/- %.3f"%(params[1],err[1])print"N:    %.2f +/- %.3f"%(params[2],err[2])plot(x,y,'bo',label='Data')plot(xf,yf,'r-',label='Fit')legend()

可用功能:

GaussiancurveExponentialcurveDoubleexponentialPolynomialsfordegrees0-20Power-LawCrystalBall...andmore!

适合用户定义的功能:

x=(4.2105303,5.2631601,6.2405997,7.5187997,8.7218,9.7744402,10.676691,11.65414,12.63158,13.83459,14.887219,16.015039,17.06767,18.270679,19.24812,20.300751,21.50376,23.157888,25.789471,28.345871,30.601501,33.458643,39.022559,46.015039,48.270679)y=(0.18942001,0.2099,0.23891001,0.27816002,0.31911,0.35836001,0.39932001,0.43686003,0.46416002,0.49829001,0.51536004,0.52556,0.51876995,0.5,0.47271,0.44026,0.39249001,0.33106002,0.24060,0.17746,0.13311001,0.11262,0.095566,0.095566,0.095566)x=array(x)y=array(y)# Guassian with quadratic background.defexample_function(params,x):N,mu,sigma,a,b,c=paramsreturnN*exp(-0.5*((x-mu)/sigma)**2)+a*x**2+b*x+c# It will still try to guess parameters, but they are dumb!(xf,yf),p,e,chi=fit.fit(example_function,x,y)plot(x,y,'bo',label='Data')plot(xf,yf,'r-',label='Fit')legend()

即使用户定义了example_function,python fit也会 猜测参数(所有参数的扩展数据的中值;它 如果X和Y的比例相似,则有效)。如果安装失败,则提供 一些不错的参数作为第一个猜测:

results=fit.fit(example_function,x,y,default_pars=[1,12,10,1,1,1])plot(results[0][0],results[0][1],'r--')

适应子范围:

clf()results=fit.fit(fit.gaus,x,y,data_range=[0,23])plot(results[0][0],results[0][1],'r-.')

定义自己的权重以防止异常值对 适合度:

# Create some outliers.y_outlier=y+(random.rand(len(y))**20)*3# I'll just make a cut and say outliers are above 0.55weights=1.*(y_outlier<.55)results=fit.fit(example_function,x,y_outlier,we=weights)clf()plot(x,y_outlier,'bo',label='Data w/ Outliers')plot(results[0][0],results[0][1],'r-.',label='Fit around outliers')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaI从另一个Jframe类B扩展了一个J帧类a,但在显示帧B时,它也在B中播放帧a   java适配器模式应用程序   使用并行流从java列表中获取Pojo,而不使用任何类型的索引   java更新文本文件中的双精度   java从webservice返回自定义对象   java在查找多个集合的交集时使用Retainal()的最快顺序   java如何在安卓社交媒体应用程序中应用用户对用户支付?   c代码能引发java异常吗?   Java数组填充了最后一个插槽中的内容   java JOOQ从大表中获取数据:良好实践   使用ApachePOI在JavaSwing中嵌入excel工作表   java如何使用枚举定义常量值组   java JavaFX将文本追加到TextArea引发异常   javascript JS在firefox中无法正常工作   java如何在同一片段中的片段打开后编辑该片段打开的活动中的值   对夏洛克的命令。py的解释不同于linux命令行和java进程api   php在Java中动态创建全局多维数组   html Java XML Transformer将“\n”替换为空格   Javac编译编码问题