欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)線性插值的示例

 更新時(shí)間:2022年12月06日 14:47:45   作者:初學(xué)小白Lu  
線性插值是針對(duì)一維數(shù)據(jù)的插值方法,它根據(jù)一維數(shù)據(jù)序列中需要插值的點(diǎn)的左右臨近兩個(gè)數(shù)據(jù)來(lái)進(jìn)行數(shù)值估計(jì),這篇文章主要介紹了python實(shí)現(xiàn)線性插值,需要的朋友可以參考下

線性插值

插值:是根據(jù)已知的數(shù)據(jù)序列(可以理解為你坐標(biāo)中一系列離散的點(diǎn)),找到其中的規(guī)律,然后根據(jù)找到的這個(gè)規(guī)律,來(lái)對(duì)其中尚未有數(shù)據(jù)記錄的點(diǎn)進(jìn)行數(shù)值估計(jì)。
線性插值:是針對(duì)一維數(shù)據(jù)的插值方法。它根據(jù)一維數(shù)據(jù)序列中需要插值的點(diǎn)的左右臨近兩個(gè)數(shù)據(jù)來(lái)進(jìn)行數(shù)值估計(jì)。當(dāng)然了它不是求這兩個(gè)點(diǎn)數(shù)據(jù)大小的平均值(在中心點(diǎn)的時(shí)候就等于平均值)。而是根據(jù)到這兩個(gè)點(diǎn)的距離來(lái)分配比重的。

python實(shí)現(xiàn)線性插值

numpy.interp

numpy.interp(x, xp, fp, left=None, right=None, period=None)

參數(shù):

  • x:類似數(shù)組,要插值點(diǎn)的橫坐標(biāo)
  • xp:一維浮點(diǎn)數(shù)序列,如果未指定參數(shù)周期,則數(shù)據(jù)點(diǎn)的x坐標(biāo)必須增加 . 否則,在用歸一化周期邊界之后對(duì)xp進(jìn)行內(nèi)部排序,xp = xp % period。
  • fp:一維浮點(diǎn)數(shù)或復(fù)數(shù)序列,數(shù)據(jù)點(diǎn)的y坐標(biāo),與xp的長(zhǎng)度相同。
  • left:可選擇參數(shù)。x <xp [0]的返回值,默認(rèn)值為fp [0]。
  • right:可選擇參數(shù)。x> xp [-1]的返回值,默認(rèn)值為fp [-1]。
  • period:設(shè)定橫坐標(biāo)的周期,該選項(xiàng)打開時(shí),則忽略left和right。

示例:

import numpy as np 
import matplotlib.pyplot as plt

xp = [1, 2, 3]
fp = [3, 2, 0]
y = np.interp(2.5, xp, fp)
#1.0

y = np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp)
#array([3.  , 3.  , 2.5 , 0.56, 0.  ])

UNDEF = -99.0
y = np.interp(3.14, xp, fp, right=UNDEF)
#-99.0

#sine 函數(shù)插值
x = np.linspace(0, 2*np.pi, 10)
y = np.sin(x)
xvals = np.linspace(0, 2*np.pi, 50)
yinterp = np.interp(xvals, x, y)

plt.plot(x, y, 'o')
plt.plot(xvals, yinterp, '-x')
plt.show()

#周期 x 坐標(biāo)的插值
x = [-180, -170, -185, 185, -10, -5, 0, 365]
xp = [190, -190, 350, -350]
fp = [5, 10, 3, 4]
y = np.interp(x, xp, fp, period=360)
#array([7.5 , 5.  , 8.75, 6.25, 3.  , 3.25, 3.5 , 3.75])

#復(fù)數(shù)插值Complex interpolation:
x = [1.5, 4.0]
xp = [2,3,5]
fp = [1.0j, 0, 2+3j]
y = np.interp(x, xp, fp)
#array([0.+1.j , 1.+1.5j])

示例:已知y坐標(biāo),求x點(diǎn)。

import numpy as np

y = np.array([0, 38.39, 71.41, 99.66, 123.67, 143.88, 160.61, 174.03, 184.16, 190.8, 193.52])
x = np.array([0, 0.37, 0.74, 1.11, 1.48, 1.85, 2.22, 2.59, 2.96, 3.33, 3.7])
plt.plot(x, y, '-')

y_val = 30
root = np.interp(y_val, y, x)
print(root)

scipy.interpolate.interp1d

scipy.interpolate.interp1d(x, y, kind='linear', axis=- 1, copy=True, bounds_error=None, fill_value=nan, assume_sorted=False)

參數(shù):

  • x:數(shù)值數(shù)組。一般是升序排列的x數(shù)據(jù)點(diǎn)。
  • y:數(shù)值數(shù)組。與x數(shù)據(jù)點(diǎn)對(duì)應(yīng)的y坐標(biāo),插值維的長(zhǎng)度必須與x長(zhǎng)度相同。
  • kind:字符串或整數(shù),給出插值的樣條曲線的階數(shù),線性插值用’linear’。‘linear’, ‘nearest’, ‘nearest-up’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’, or ‘next’. ‘zero’, ‘slinear’, ‘quadratic’ ,‘cubic’。
  • axis:int
  • copy:bool
  • bounds_error:布爾值,越界是否報(bào)錯(cuò),除非fill_value=‘extrapolate’,否則默認(rèn)越界時(shí)報(bào)錯(cuò)。
  • fill_value:數(shù)組或’extrapolate’,指定不在x范圍內(nèi)時(shí)的填充值或填充方法. 當(dāng)為’extrapolate’時(shí),返回的函數(shù)會(huì)對(duì)落在x范圍外的值進(jìn)行外插。
  • assume_sorted:bool

示例:

x = data['時(shí)間']
y = data['濃度']
# 構(gòu)建完整的時(shí)間序列 = [1,23,...23]
xnew = np.linspace(1,23,num=23)

# 線性插值
f1 = interp1d(x,y,kind='linear')
ynew1 = f1(xnew)
plt.scatter(x,y,zorder=3)
plt.plot(xnew,ynew1,marker='s',ls='--',c='C1')
plt.legend(['data','線性插值'])
plt.xticks(range(0,24,1))
plt.grid(ls='--',alpha=0.5)
plt.xlabel('A')
plt.ylabel('B')
plt.tight_layout()
plt.show()

示例:

from scipy.interpolate import interp1d

x = [1, 2, 3]
y = [3, 2, 0]
f = interp1d(x,y,fill_value=(3,0),bounds_error=False) # 線性內(nèi)插
out = f([0, 1, 1.5, 2.72, 3.14])
print(out)
#array([3. , 3. , 2.5 , 0.56, 0. ])

fe = interp1d(x,y, fill_value='extrapolate') # 線性內(nèi)插+外插
out = fe([0, 1, 1.5, 2.72, 3.14])
print(out)
#array([ 4. , 3. , 2.5 , 0.56, -0.28])

到此這篇關(guān)于python實(shí)現(xiàn)線性插值的文章就介紹到這了,更多相關(guān)python線性插值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python倒排索引之查找包含某主題或單詞的文件

    Python倒排索引之查找包含某主題或單詞的文件

    倒排索引(英語(yǔ):Inverted index),也常被稱為反向索引、置入檔案或反向檔案,是一種索引方法,被用來(lái)存儲(chǔ)在全文搜索下某個(gè)單詞在一個(gè)文檔或者一組文檔中的存儲(chǔ)位置的映射。這篇文章主要介紹了Python倒排索引之查找包含某主題或單詞的文件,需要的朋友可以參考下
    2019-11-11
  • 以911新聞為例演示Python實(shí)現(xiàn)數(shù)據(jù)可視化的教程

    以911新聞為例演示Python實(shí)現(xiàn)數(shù)據(jù)可視化的教程

    這篇文章主要介紹了以911新聞為例演示Python實(shí)現(xiàn)數(shù)據(jù)可視化的教程,主要基于NMF主題模型,需要的朋友可以參考下
    2015-04-04
  • 淺談一下Python究竟屬不屬于嵌入式語(yǔ)言

    淺談一下Python究竟屬不屬于嵌入式語(yǔ)言

    這篇文章主要介紹了淺談一下Python究竟屬不屬于嵌入式語(yǔ)言,大家普遍的認(rèn)為C與C++才是標(biāo)準(zhǔn)的嵌入式語(yǔ)言,那么現(xiàn)在大火的Python算是一種嵌入式語(yǔ)言嗎,需要的朋友可以參考下
    2023-04-04
  • Python函數(shù)中閉包和延遲綁定詳情

    Python函數(shù)中閉包和延遲綁定詳情

    這篇文章主要介紹了Python函數(shù)中閉包和延遲綁定詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • python在前端頁(yè)面使用?MySQLdb?連接數(shù)據(jù)

    python在前端頁(yè)面使用?MySQLdb?連接數(shù)據(jù)

    這篇文章主要介紹了MySQLdb?連接數(shù)據(jù)的使用,文章主要介紹的相關(guān)內(nèi)容又插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù),搜索數(shù)據(jù),需要的小伙伴可以參考一下
    2022-03-03
  • 簡(jiǎn)介Python的collections模塊中defaultdict類型的用法

    簡(jiǎn)介Python的collections模塊中defaultdict類型的用法

    這里我們來(lái)簡(jiǎn)介Python的collections模塊中defaultdict類型的用法,與內(nèi)置的字典類最大的不同在于初始化上,一起來(lái)看一下:
    2016-07-07
  • Python 中urls.py:URL dispatcher(路由配置文件)詳解

    Python 中urls.py:URL dispatcher(路由配置文件)詳解

    這篇文章主要介紹了Python 中urls.py:URL dispatcher(路由配置文件)詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • pycharm配置python 設(shè)置pip安裝源為豆瓣源

    pycharm配置python 設(shè)置pip安裝源為豆瓣源

    這篇文章主要介紹了pycharm配置python 設(shè)置pip安裝源為豆瓣源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 詳解Python中如何寫控制臺(tái)進(jìn)度條的整理

    詳解Python中如何寫控制臺(tái)進(jìn)度條的整理

    這篇文章主要介紹了詳解Python中如何寫控制臺(tái)進(jìn)度條的整理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Python中g(shù)lob庫(kù)實(shí)現(xiàn)文件名的匹配

    Python中g(shù)lob庫(kù)實(shí)現(xiàn)文件名的匹配

    本文主要主要介紹了Python中g(shù)lob庫(kù)實(shí)現(xiàn)文件名的匹配,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06

最新評(píng)論