scipy.interpolate.RegularGridInterpolator.

__call__#

RegularGridInterpolator.__call__(xi, method=None, *, nu=None)[source]#

在坐标处插值。

参数:
xishape 为 (…, ndim) 的 ndarray

要评估插值器的位置坐标。

methodstr,可选

要执行的插值方法。支持 “linear”、 “nearest”、 “slinear”、 “cubic”、 “quintic” 和 “pchip”。默认值为创建插值器时选择的 method。

nu整数序列,长度为 ndim,可选

如果非 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])