Numpy一維線性插值函數(shù)的用法
直接列出函數(shù):
numpy.interp(x, xp, fp, left=None, right=None, period=None)
x - 表示將要計算的插值點x坐標
xp - 表示已有的xp數(shù)組
fp - 表示對應于已有的xp數(shù)組的值
left - 表示當x值在xp中最小值左邊時,x對應y的值為left
right - 表示當x值在xp中最大值右邊時,x對應y的值為right
(left和right表示x在xp的域外時,y的取值)
example:
1.
import numpy as np xp = [1, 2, 3] fp = [3, 2, 0] print(np.interp(2.5, xp, fp))
output:1.0
2.
import numpy as np xp = [1, 2, 3] fp = [3, 2, 0] x = [0, 1, 1.5, 2.72, 3.14] print(np.interp(x, xp, fp))
output:[3. 3. 2.5 0.56 0. ]
3.
import numpy as np xp = [1, 2, 3] fp = [3, 2, 0] x = [0, 1, 1.5, 2.72, 3.14] print(np.interp(x, xp, fp, -99, 99))
output:[-99. 3. 2.5 0.56 99. ]
補充知識:numpy 的一維插值函數(shù)interp
numpy.interp(x, xp, fp, left=None, right=None, period=None)
返回離散數(shù)據(jù)的一維分段線性插值結(jié)果,浮點數(shù)或復數(shù)(對應于fp值)或ndarray. 插入數(shù)據(jù)的縱坐標,和x形狀相同。
x: 數(shù)組,待插入數(shù)據(jù)的橫坐標.
xp: 一維浮點數(shù)序列,原始數(shù)據(jù)點的橫坐標,如果period參數(shù)沒有指定那么就必須是遞增的。否則,在使用xp = xp % period正則化之后,xp在內(nèi)部進行排序.
fp: 一維浮點數(shù)或復數(shù)序列原始數(shù)據(jù)點的縱坐標,和xp序列等長.
left: 可選參數(shù),類型為浮點數(shù)或復數(shù)(對應于fp值),當x < xp[0]時的插值返回值,默認為fp[0].
right: 可選參數(shù),類型為浮點數(shù)或復數(shù)(對應于fp值),當x > xp[-1]時的插值返回值,默認為fp[-1].
period: None或者浮點數(shù),可選參數(shù). 橫坐標的周期. 此參數(shù)使得可以正確插入angular x-coordinates. 如果該參數(shù)被設定,那么忽略left參數(shù)和right參數(shù)。
插入橫坐標在原函數(shù)橫坐標范圍內(nèi)
x = 2.5 # 要插入值的橫坐標 xp = [1, 2, 3] # 要插入序列的橫坐標 fp = [3, 2, 0] # 要插入序列的縱坐標 y = np.interp(x, xp, fp) # 返回插入值的縱坐標 1.0 plt.plot(xp, fp, '-o') plt.plot(x, y, 'x') plt.show()
插入橫坐標在原函數(shù)橫坐標外(默認)
x = [0, 1, 1.5, 2.72, 3.14] # 左側(cè)外部默認為原函數(shù)最左側(cè)函數(shù)值,右側(cè)默認為右側(cè) xp = [1, 2, 3] fp = [3, 2, 0] y = np.interp(x, xp, fp) # array([ 3. ,3. ,2.5 ,0.56, 0. ]) plt.plot(xp, fp, '-o') plt.plot(x, y, 'x') plt.show()
插入橫坐標在原函數(shù)橫坐標外(指定)
x = 3.14 xp = [1, 2, 3] fp = [3, 2, 0] UNDEF = -99.0 y = np.interp(x, xp, fp, right=UNDEF) # -99.0 plt.plot(xp, fp, '-o') plt.plot(x, y, 'x') plt.show()
正弦插值
x = np.linspace(0, 2 * np.pi, 10) # 在0到2pi的范圍內(nèi)均勻取10個點 y = np.sin(x) # sin函數(shù)x橫坐標對應的y值 xvals = np.linspace(0, 2 * np.pi, 50) # 均勻取50個 yinterp = np.interp(xvals, x, y) # 在映射關系為y的x中插入xvals plt.plot(x, y, 'o') plt.plot(xvals, yinterp, '-x') plt.show()
以上這篇Numpy一維線性插值函數(shù)的用法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Django中QuerySet查詢優(yōu)化之prefetch_related詳解
prefetch_related()和select_related()的設計目的很相似,都是為了減少SQL查詢的數(shù)量,但是實現(xiàn)的方式不一樣,下面這篇文章主要給大家介紹了關于Django中QuerySet查詢優(yōu)化之prefetch_related的相關資料,需要的朋友可以參考下2022-11-11python中時間、日期、時間戳的轉(zhuǎn)換的實現(xiàn)方法
這篇文章主要介紹了python中時間、日期、時間戳的轉(zhuǎn)換的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07Windows系統(tǒng)下Chromedriver.exe安裝及配置詳細教程
ChromeDriver.exe是一款實用的chrome瀏覽器驅(qū)動工具,能夠用于自動化測試、網(wǎng)絡爬蟲和操作瀏覽器,其主要作用是模擬瀏覽器操作,下面這篇文章主要給大家介紹了關于Windows系統(tǒng)下Chromedriver.exe安裝及配置的相關資料,需要的朋友可以參考下2023-11-11Python?range函數(shù)生成一系列連續(xù)整數(shù)的內(nèi)部機制解析
這篇文章主要為大家介紹了Python?range函數(shù)生成一系列連續(xù)整數(shù)的內(nèi)部機制解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12Python 稀疏矩陣-sparse 存儲和轉(zhuǎn)換
這篇文章主要介紹了Python 稀疏矩陣-sparse 存儲和轉(zhuǎn)換的相關資料,需要的朋友可以參考下2017-05-05