scipy.interpolate.RegularGridInterpolator.
__call__#
- RegularGridInterpolator.__call__(xi, method=None, *, nu=None)[source]#
在座標處進行內插。
- 參數:
- xindarray of shape (…, ndim)
用於評估內插器的座標。
- methodstr, optional
要執行的內插方法。支援 “linear”、“nearest”、“slinear”、“cubic”、“quintic” 和 “pchip”。預設是在建立內插器時選擇的方法。
- nusequence of ints, length ndim, optional
如果不是 None,則是要評估的導數階數。每個條目都必須是非負數。僅允許用於 “slinear”、“cubic” 和 “quintic” 方法。
在 1.13 版本中新增。
- 回傳值:
- values_xndarray, shape xi.shape[:-1] + values.shape[ndim:]
在 xi 處的內插值。請參閱註解以了解
xi.ndim == 1
時的行為。
註解
在
xi.ndim == 1
的情況下,新的軸會插入到回傳陣列 values_x 的位置 0,因此其形狀變為(1,) + values.shape[ndim:]
。範例
在這裡,我們定義一個簡單函數的最近鄰內插器
>>> import numpy as np >>> x, y = np.array([0, 1, 2]), np.array([1, 3, 7]) >>> def f(x, y): ... return x**2 + y**2 >>> data = f(*np.meshgrid(x, y, indexing='ij', sparse=True)) >>> from scipy.interpolate import RegularGridInterpolator >>> interp = RegularGridInterpolator((x, y), data, method='nearest')
透過建構,內插器使用最近鄰內插法
>>> interp([[1.5, 1.3], [0.3, 4.5]]) array([2., 9.])
但是,我們可以透過覆寫 method 參數來評估線性內插
>>> interp([[1.5, 1.3], [0.3, 4.5]], method='linear') array([ 4.7, 24.3])