當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy interpolate.Rbf用法及代碼示例


本文簡要介紹 python 語言中 scipy.interpolate.Rbf 的用法。

用法:

class  scipy.interpolate.Rbf(*args, **kwargs)#

從N-D分散數據到M-D域的徑向基函數插值類。

遺產

此類被視為遺留類,將不再接收更新。這也可能意味著它將在未來的 SciPy 版本中被刪除。 Rbf 是舊代碼,對於新用途,請改用 RBFInterpolator

參數

*args 數組

x, y, z, ..., d, 其中 x, y, z, ... 是節點的坐標,d 是節點處的值數組

function str 或可調用,可選

徑向基函數,基於由範數給出的半徑 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 提供。其他傳入的關鍵字參數也將可用。

epsilon 浮點數,可選

高斯或多二次函數的可調常數 - 默認為節點之間的近似平均距離(這是一個好的開始)。

smooth 浮點數,可選

大於零的值會增加近似的平滑度。 0 用於插值(默認),在這種情況下,函數將始終通過節點。

norm str,可調用,可選

返回兩點之間的‘distance’ 的函數,輸入為位置數組(x、y、z、...),輸出為距離數組。例如,默認值:‘euclidean’,使得結果是到每個點的距離矩陣x1到每個點x2.有關更多選項,請參閱文檔scipy.spatial.distances.cdist.

mode str,可選

插值模式,可以是“一維”(默認)或“N-D”。當它是“一維”時,數據 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,)

屬性

N int

數據點的數量(由輸入數組確定)。

di ndarray

每個數據坐標 xi 處的一維數據值數組。

xi ndarray

數據坐標的二維數組。

function str 或可調用

徑向基函數。請參閱參數下的說明。

epsilon 浮點數

高斯或多二次函數使用的參數。請參閱參數。

smooth 浮點數

平滑參數。請參閱參數下的說明。

norm str 或可調用

距離函數。請參閱參數下的說明。

mode str

插值模式。請參閱參數下的說明。

nodes ndarray

用於插值的一維節點值數組。

A 內部屬性,請勿使用

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.interpolate.Rbf。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。