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实现将xml导入至excel
Nov 20 Python
Fiddler如何抓取手机APP数据包
Jan 22 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
如何基于python对接钉钉并获取access_token
Apr 21 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
Python集合的基础操作
Nov 01 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
浅析PHP中Collection 类的设计
2013/06/21 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
大学毕业感言
2014/01/10 职场文书
九年级家长会邀请函
2014/01/15 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2014年加油站工作总结
2014/12/04 职场文书
中国合伙人观后感
2015/06/02 职场文书
2016新年年会主持词
2015/07/06 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
python中__slots__节约内存的具体做法
2021/07/04 Python