日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python拉格朗日插值法_Python实现的拉格朗日插值法示例

發布時間:2024/3/24 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python拉格朗日插值法_Python实现的拉格朗日插值法示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了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实现的拉格朗日插值法示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。