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实现的二维码生成小软件
Jul 11 Python
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 Python
Python中不同进制的语法及转换方法分析
Jul 27 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
Python实现的选择排序算法示例
Nov 29 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
python字典key不能是可以是啥类型
Aug 04 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
python实现b站直播自动发送弹幕功能
Feb 20 Python
python编写函数注意事项总结
Mar 29 Python
Python代码风格与编程习惯重要吗?
Jun 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
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
jquery 图片轮换效果
2010/07/29 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
某某同志考察材料
2014/05/28 职场文书
技校毕业生自荐信
2014/06/03 职场文书
小学数学课题方案
2014/06/15 职场文书
公司合作协议范文
2014/10/01 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL