本文实例讲述了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实现的拉格朗日插值法示例相关推荐

  1. python pymysql实例_python笔记-mysql命令使用示例(使用pymysql执行)

    一.mysql命令使用 学习完mysql现在来进行一些测试 1.1.进入mysql 终端输入一下命令,进入数据库 mysql -uusername -p 1.2 进入数据库 在mysql终端输入如下命 ...

  2. python schedule多线程_Python定时任务sched模块用法示例

    本文实例讲述了Python定时任务sched模块用法.分享给大家供大家参考,具体如下: 通过sched模块可以实现通过自定义时间,自定义函数,自定义优先级来执行函数. 范例一 import time ...

  3. python热力图背景_python 绘制场景热力图的示例

    我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...

  4. python读取python源代码文件_python 读写excel文件操作示例【附源码下载】

    本文实例讲述了python 读写excel文件操作.分享给大家供大家参考,具体如下: 对excel文件的操作,python有第三方的工具包支持,xlutils,在这个工具包中包含了xlrd,xlwt等 ...

  5. python多线程扫描_Python多线程扫描端口代码示例

    本文代码实现Python多线程扫描端口,具体实现代码如下. #coding:utf-8 import socket import thread import time socket.setdefaul ...

  6. python创建矩阵_Python创建对称矩阵的方法示例【基于numpy模块】

    本文实例讲述了Python创建对称矩阵的方法.分享给大家供大家参考,具体如下: 对称(实对称)矩阵也即: step 1:创建一个方阵 >>> import numpy as np & ...

  7. python html模板_Python html.format_html方法代码示例

    本文整理汇总了Python中django.utils.html.format_html方法的典型用法代码示例.如果您正苦于以下问题:Python html.format_html方法的具体用法?Pyt ...

  8. python unittest断言_python unittest之断言及示例

    assert.png 前言 python unintest单元测试框架提供了一整套内置的断言方法. 如果断言失败,则抛出一个AssertionError,并标识该测试为失败状态 如果异常,则当做错误来 ...

  9. python串口通信_python 读取串口数据的示例

    python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数 ...

最新文章

  1. ios开发之UIView和UIViewController
  2. MyBatis源码-解读Executor的三个实现类之SimpleExecutor(简单执行器)
  3. vue下拉框值改变_vue select下拉框绑定值不跟着变问题
  4. 如何使用Angular Generator创建新的Component
  5. IntelliJ IDEA 项目开发中各个目录的关系
  6. c#设计一个方法,与使用
  7. springmvc注解@RequestMapping
  8. 教你如何做出自己想要的PHP Docker镜像
  9. 2017.8.14 分手是祝愿 失败总结
  10. MapReduce 原理及执行过程
  11. JSP 实现登录注册功能
  12. Java对象和Map相互转换方法
  13. 梯度,雅克比矩阵和海森矩阵
  14. c语言vc怎么改变背景板颜色,VC设置视图背景颜色方法
  15. 高通平台修改msm8916_defconfig
  16. 云虚拟主机bch 和 云服务器bcc,虚拟主机bch和云服务器bcc
  17. R(A+B)<=R(A)+R(B): R(AB)<=min(R(A)+R(B)): A为m×n矩阵,r(A)=n,则AX=0只有零解。设矩阵A为m×n的秩R(A)=m;Ax=b 有解;
  18. 腾讯云Linux云服务器搭建网站
  19. 考研英语四附双语阅读:上海VS旧金山:谁的移动支付更出色?
  20. 华为5c_华为5c参数详细参数解析 这款手机好不好【图文】

热门文章

  1. Win10蓝屏CRITICAL_STRUCTURE_CORRUPTION解决方案(360急救箱)
  2. 伯恩PAC人格结构理论(转载)
  3. 我的周刊(第082期)
  4. 微信小程序开发--日历/日视图
  5. DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution论文学习
  6. 几何光学学习笔记(14)- 4.3 反射棱镜
  7. Rust 语言服务器 (RLS)
  8. 360路由上线:周红衣和他的小盒子们
  9. 六十星系之49武曲天府坐子午
  10. 【C++】C++11 右值引用和移动语义