scipy.interpolate.RegularGridInterpolator.
__call__#
- RegularGridInterpolator.__call__(xi, method=None, *, nu=None)[源代码][源代码]#
在坐标处进行插值。
- 参数:
- xi形状为 (…, ndim) 的 ndarray
要评估插值器的坐标。
- 方法str, 可选
要执行的插值方法。支持的方法有 “线性”、”最近邻”、”线性样条”、”三次”、”五次” 和 “pchip”。默认是插值器创建时选择的方法。
- nu整数序列,长度为 ndim,可选
如果不是 None,则指定要计算的导数的阶数。每个条目必须为非负数。仅允许用于方法 “slinear”、”cubic” 和 “quintic”。
Added in version 1.13.
- 返回:
- values_xndarray, 形状 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])