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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
用Python计算三角函数之atan()方法的使用
May 15 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
浅析python打包工具distutils、setuptools
Apr 20 Python
对python中的iter()函数与next()函数详解
Oct 18 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
对python中矩阵相加函数sum()的使用详解
Jan 28 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
Django 开发环境配置过程详解
Jul 18 Python
python实现简单成绩录入系统
Sep 19 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
python抢购软件/插件/脚本附完整源码
Mar 04 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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
利用npm 安装删除模块的方法
2018/05/15 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
Python在不同目录下导入模块的实现方法
2017/10/27 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
在线服装零售商:SheIn
2016/07/22 全球购物
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
中医专业应届生求职信
2013/11/17 职场文书
预备党员承诺书
2014/03/25 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
旷工辞退通知书
2015/04/17 职场文书
CAD实训总结范文
2015/08/03 职场文书
理解python中装饰器的作用
2021/07/21 Python
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python