Numpy一維線性插值函式的用法
直接列出函式:
numpy.interp(x,xp,fp,left=None,right=None,period=None)
x - 表示將要計算的插值點x座標
xp - 表示已有的xp陣列
fp - 表示對應於已有的xp陣列的值
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,0] print(np.interp(2.5,fp))
output:1.0
2.
import numpy as np xp = [1,0] x = [0,1,1.5,2.72,3.14] print(np.interp(x,fp))
output:[3. 3. 2.5 0.56 0. ]
3.
import numpy as np xp = [1,-99,99))
output:[-99. 3. 2.5 0.56 99. ]
補充知識:numpy 的一維插值函式interp
numpy.interp(x,period=None)
返回離散資料的一維分段線性插值結果,浮點數或複數(對應於fp值)或ndarray. 插入資料的縱座標,和x形狀相同。
x: 陣列,待插入資料的橫座標.
xp: 一維浮點數序列,原始資料點的橫座標,如果period引數沒有指定那麼就必須是遞增的。否則,在使用xp = xp % period正則化之後,xp在內部進行排序.
fp: 一維浮點數或複數序列原始資料點的縱座標,和xp序列等長.
left: 可選引數,型別為浮點數或複數(對應於fp值),當x < xp[0]時的插值返回值,預設為fp[0].
right: 可選引數,型別為浮點數或複數(對應於fp值),當x > xp[-1]時的插值返回值,預設為fp[-1].
period: None或者浮點數,可選引數. 橫座標的週期. 此引數使得可以正確插入angular x-coordinates. 如果該引數被設定,那麼忽略left引數和right引數。
插入橫座標在原函式橫座標範圍內
x = 2.5 # 要插入值的橫座標 xp = [1,3] # 要插入序列的橫座標 fp = [3,0] # 要插入序列的縱座標 y = np.interp(x,fp) # 返回插入值的縱座標 1.0 plt.plot(xp,'-o') plt.plot(x,y,'x') plt.show()
插入橫座標在原函式橫座標外(預設)
x = [0,3.14] # 左側外部預設為原函式最左側函式值,右側預設為右側 xp = [1,0] y = np.interp(x,fp) # array([ 3.,3.,2.5,0.56,0. ]) plt.plot(xp,'x') plt.show()
插入橫座標在原函式橫座標外(指定)
x = 3.14 xp = [1,0] UNDEF = -99.0 y = np.interp(x,right=UNDEF) # -99.0 plt.plot(xp,'x') plt.show()
正弦插值
x = np.linspace(0,2 * np.pi,10) # 在0到2pi的範圍內均勻取10個點 y = np.sin(x) # sin函式x橫座標對應的y值 xvals = np.linspace(0,50) # 均勻取50個 yinterp = np.interp(xvals,x,y) # 在對映關係為y的x中插入xvals plt.plot(x,'o') plt.plot(xvals,yinterp,'-x') plt.show()
以上這篇Numpy一維線性插值函式的用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。