Rbf#
- class scipy.interpolate.Rbf(*args, **kwargs)[原始碼]#
用於從 N 維散佈資料對 M 維域進行徑向基底函數內插的類別。
舊版
此類別被視為舊版,將不再收到更新。雖然我們目前沒有移除它的計劃,但我們建議新程式碼改用更現代的替代方案。
Rbf
是舊版程式碼,對於新的使用案例,請改用RBFInterpolator
。- 參數:
- *args陣列
x、y、z、…、d,其中 x、y、z、… 是節點的座標,而 d 是節點處的值陣列
- functionstr 或可呼叫物件,選用
徑向基底函數,基於半徑 r,由範數給定(預設為歐幾里得距離);預設為 ‘multiquadric’
'multiquadric': sqrt((r/self.epsilon)**2 + 1) 'inverse': 1.0/sqrt((r/self.epsilon)**2 + 1) 'gaussian': exp(-(r/self.epsilon)**2) 'linear': r 'cubic': r**3 'quintic': r**5 'thin_plate': r**2 * log(r)
如果是可呼叫物件,則必須接受 2 個引數 (self, r)。epsilon 參數將以 self.epsilon 的形式提供。傳入的其他關鍵字引數也將可用。
- epsilonfloat,選用
高斯函數或 multiquadrics 函數的可調整常數 - 預設為節點之間的大約平均距離(這是一個好的開始)。
- smoothfloat,選用
大於零的值會增加近似的平滑度。0 用於內插(預設),在這種情況下,函數將始終通過節點。
- normstr、可呼叫物件,選用
一個函數,它返回兩點之間的「距離」,輸入為位置陣列(x、y、z、…),輸出為距離陣列。例如,預設值:'euclidean',這樣結果就是從
x1
中的每個點到x2
中的每個點的距離矩陣。如需更多選項,請參閱 scipy.spatial.distances.cdist 的文件。- modestr,選用
內插模式,可以是 ‘1-D’(預設)或 ‘N-D’。當它是 ‘1-D’ 時,資料 d 將被視為 1-D 並在內部展平。當它是 ‘N-D’ 時,資料 d 假定為形狀 (n_samples, m) 的陣列,其中 m 是目標域的維度。
另請參閱
範例
>>> import numpy as np >>> from scipy.interpolate import Rbf >>> rng = np.random.default_rng() >>> x, y, z, d = rng.random((4, 50)) >>> rbfi = Rbf(x, y, z, d) # radial basis function interpolator instance >>> xi = yi = zi = np.linspace(0, 1, 20) >>> di = rbfi(xi, yi, zi) # interpolated values >>> di.shape (20,)
- 屬性:
- Nint
資料點的數量(由輸入陣列決定)。
- dindarray
每個資料座標 xi 處的資料值的一維陣列。
- xindarray
資料座標的二維陣列。
- functionstr 或可呼叫物件
徑向基底函數。請參閱「參數」下的描述。
- epsilonfloat
高斯函數或 multiquadrics 函數使用的參數。請參閱「參數」。
- smoothfloat
平滑參數。請參閱「參數」下的描述。
- normstr 或可呼叫物件
距離函數。請參閱「參數」下的描述。
- modestr
內插模式。請參閱「參數」下的描述。
- nodesndarray
用於內插的節點值的一維陣列。
- A內部屬性,請勿使用
方法
__call__
(*args)將 self 作為函數呼叫。