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 相关文章推荐
Python3使用requests发闪存的方法
May 11 Python
Django Highcharts制作图表
Aug 27 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
python计算列表内各元素的个数实例
Jun 29 Python
使用numba对Python运算加速的方法
Oct 15 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
python爬虫之快速对js内容进行破解
Jul 09 Python
python中自带的三个装饰器的实现
Nov 08 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
Django vue前后端分离整合过程解析
Nov 20 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 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时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
python多任务之协程的使用详解
2019/08/26 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
关于Java finally的面试题
2016/04/27 面试题
会议邀请函范文
2014/01/09 职场文书
司机辞职报告范文
2014/01/20 职场文书
毕业设计说明书
2014/05/07 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
领导班子整改措施
2014/10/24 职场文书
地道战观后感2000字
2015/06/04 职场文书
企业安全生产检查制度
2015/08/06 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python