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数据结构之链表详解
Sep 12 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
Python3导入自定义模块的三种方法详解
Apr 13 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
Python实现合并两个有序链表的方法示例
Jan 31 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
python实现四人制扑克牌游戏
Apr 22 Python
python os模块常用的29种方法使用详解
Jun 02 Python
python如何进行矩阵运算
Jun 05 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调用三种数据库的方法(3)
2006/10/09 PHP
完美解决PHP中文乱码
2009/11/26 PHP
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
详解JavaScript函数
2015/12/01 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
JS快速实现移动端拼图游戏
2016/09/05 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
详谈Node.js之操作文件系统
2017/08/29 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
军训自我鉴定范文
2014/02/13 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
岗位说明书怎么写
2014/07/30 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
redis数据一致性的实现示例
2022/03/18 Redis
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
MySQL 数据 data 基本操作
2022/05/04 MySQL