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实现监控windows服务并自动启动服务示例
Apr 17 Python
python求众数问题实例
Sep 26 Python
Python实现的下载8000首儿歌的代码分享
Nov 21 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
Python中with及contextlib的用法详解
Jun 08 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
python实现NB-IoT模块远程控制
Jun 20 Python
python实现ip地址查询经纬度定位详解
Aug 30 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
Python如何省略括号方法详解
Mar 21 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 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数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
php 模拟get_headers函数的代码示例
2013/04/27 PHP
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
javascript 闭包疑问
2010/12/30 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
详解javascript中的事件处理
2015/11/06 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
Python os模块介绍
2014/11/30 Python
Python随机生成彩票号码的方法
2015/03/05 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
毕业生面试求职信
2014/06/23 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
个人自荐书怎么写
2015/03/26 职场文书
新兵入伍决心书
2015/09/22 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle