Python实现的拉格朗日插值法示例


Posted in Python onJanuary 08, 2019

本文实例讲述了Python实现的拉格朗日插值法。分享给大家供大家参考,具体如下:

拉格朗日插值简单介绍

拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。

许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解。在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个简单函数,其恰好在各个现测的点取到观测到的值,这个函数可以是代数多项式,三角多项式等。

完整Python示例:

# -*- coding:utf-8 -*-
#拉格朗日插值代码
import pandas as pd #导入数据分析库Pandas
from scipy.interpolate import lagrange #导入拉格朗日插值函数
inputfile = 'catering_sale.xls' #销量数据路径
data = pd.read_excel(inputfile) #读入数据
data[u'销量'][(data[u'销量'] < 400) | (data[u'销量'] > 5000)] = None #过滤异常值,将其变为空值
#自定义列向量插值函数
#s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5
def ployinterp_column(s, n, k=5):
 y = s[list(range(n-k, n)) + list(range(n+1, n+1+k))] #取数
 y = y[y.notnull()] #剔除空值
 return lagrange(y.index, list(y))(n) #插值并返回插值结果
#逐个元素判断是否需要插值
for i in data.columns:
 for j in range(len(data)):
  if data[i].isnull()[j]: #如果为空即插值。
   data[i][j] = ployinterp_column(data[i], j)
print(data)

运行结果:

            日期           销量
0   2015-03-01  -291.400000
1   2015-02-28  2618.200000
2   2015-02-27  2608.400000
3   2015-02-26  2651.900000
4   2015-02-25  3442.100000
5   2015-02-24  3393.100000
6   2015-02-23  3136.600000
7   2015-02-22  3744.100000
8   2015-02-21  4275.254762
9   2015-02-20  4060.300000
10  2015-02-19  3614.700000
11  2015-02-18  3295.500000
12  2015-02-16  2332.100000
13  2015-02-15  2699.300000
14  2015-02-14  4156.860423
15  2015-02-13  3036.800000
16  2015-02-12   865.000000
17  2015-02-11  3014.300000
18  2015-02-10  2742.800000
19  2015-02-09  2173.500000
20  2015-02-08  3161.800000
21  2015-02-07  3023.800000
22  2015-02-06  2998.100000
23  2015-02-05  2805.900000
24  2015-02-04  2383.400000
25  2015-02-03  2620.200000
26  2015-02-02  2600.000000
27  2015-02-01  2358.600000
28  2015-01-31  2682.200000
29  2015-01-30  2766.800000
..         ...          ...
171 2014-08-31  3494.700000
172 2014-08-30  3691.900000
173 2014-08-29  2929.500000
174 2014-08-28  2760.600000
175 2014-08-27  2593.700000
176 2014-08-26  2884.400000
177 2014-08-25  2591.300000
178 2014-08-24  3022.600000
179 2014-08-23  3052.100000
180 2014-08-22  2789.200000
181 2014-08-21  2909.800000
182 2014-08-20  2326.800000
183 2014-08-19  2453.100000
184 2014-08-18  2351.200000
185 2014-08-17  3279.100000
186 2014-08-16  3381.900000
187 2014-08-15  2988.100000
188 2014-08-14  2577.700000
189 2014-08-13  2332.300000
190 2014-08-12  2518.600000
191 2014-08-11  2697.500000
192 2014-08-10  3244.700000
193 2014-08-09  3346.700000
194 2014-08-08  2900.600000
195 2014-08-07  2759.100000
196 2014-08-06  2915.800000
197 2014-08-05  2618.100000
198 2014-08-04  2993.000000
199 2014-08-03  3436.400000
200 2014-08-02  2261.700000

[201 rows x 2 columns]

附:catering_sale.xls点击此处本站下载

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python笔记(叁)继续学习
Oct 24 Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 Python
Python上传package到Pypi(代码简单)
Feb 06 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
python编写分类决策树的代码
Dec 21 Python
Python中使用支持向量机SVM实践
Dec 27 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
python对象转字典的两种实现方式示例
Nov 07 Python
基于python和flask实现http接口过程解析
Jun 15 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
Django框架模板用法详解
Jun 10 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 #Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 #Python
Django之模型层多表操作的实现
Jan 08 #Python
对python mayavi三维绘图的实现详解
Jan 08 #Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 #Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 #Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 #Python
You might like
PHP生成HTML静态页面实例代码
2008/08/31 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
jQuery1.6 使用方法二
2011/11/23 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
angular.element方法汇总
2015/01/07 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python中List.count()方法的使用教程
2015/05/20 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
python遍历目录的方法小结
2016/04/28 Python
Python迭代和迭代器详解
2016/11/10 Python
python使用mysql的两种使用方式
2018/03/07 Python
对numpy中轴与维度的理解
2018/04/18 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
Python上下文管理器全实例详解
2019/11/12 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
python定义类的简单用法
2020/07/24 Python
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
社团活动总结怎么写
2014/06/30 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
工程部文员岗位职责
2015/02/04 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
修改并编译golang源码的操作步骤
2021/07/25 Golang