python数据处理2: 拟合数据、整合数据、导出数据

33 篇文章 10 订阅

目标

python数据处理1: 导入数据、片选数据、数据绘图,采用python 实现拟合数据,整合数据,导出数据

软件

Anaconda3 + Spyder 3.3.6 + Python 3.7.4
拟合涉及库函数:

  • scipy

教程

Using scipy for data fitting
https://education.molssi.org/python-data-analysis/03-data-fitting/index.html

实现

导入库函数

拟合涉及库函数:

from scipy.optimize import curve_fit

定义拟合函数

def single_exp(x,tau, a, b):
    y = a+b*np.exp(-x/tau)
    return y

拟合数据

parameters1, covariance1 = curve_fit(single_exp, t1, v1,
                                     bounds=([0,-5*abs(v1).max(),-5*abs(v1).max()], 
                                              [10000, 5*abs(v1).max(), 5*abs(v1).max()]))


parameters2, covariance2 = curve_fit(single_exp, t2, v2, 
                                     bounds=([0,-5*abs(v2).max(),-5*abs(v2).max()], 
                                              [10000, 5*abs(v2).max(), 5*abs(v2).max()]))
print(parameters1)
print(parameters2)

获得拟合曲线

v1fit = single_exp(t1,parameters1[0],parameters1[1],parameters1[2])
v2fit = single_exp(t2,parameters2[0],parameters2[1],parameters2[2])

数据可视化绘图

追加绘图:

fig, ax = plt.subplots() 
ax.plot(t1,v1fit,color='k',label ='risefit',linewidth=2.0)
ax.plot(t2,v2fit,color='k',label ='fallfit',linewidth=2.0)
plt.show()

效果

在这里插入图片描述

数据合并

to = pd.concat([t1,t2],axis=0)
vo = pd.concat([v1,v2],axis=0)
vfito = pd.concat([v1fit,v2fit],axis=0)
out = pd.concat([to,vo,vfito],axis=1)

数据导出

out.to_csv('out.csv',index=0,header=0)

总结

拟合注意边界设置
定义的拟合函数必须有x和y
数据合并注意axis参数

参考

scipy.optimize.curve_fit函数用法解析
https://zhuanlan.zhihu.com/p/144353126
pandas的to_csv()使用方法
https://blog.csdn.net/toshibahuai/article/details/79034829
Markdown语法图文全面详解(10分钟学会)
https://blog.csdn.net/u014061630/article/details/81359144

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

银河漫游者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值