scipy.interpolate.interpn

scipy.interpolate.interpn(points, values, xi, method='linear', bounds_error=True, fill_value=nan)[源代码]

规则网格上的多维插值。

参数
points浮点数的元组,形状为(M1,),.,(Mn,)

这些点定义了n维的规则栅格。

values类似数组,形状(M1,.,Mn,.)

n维的规则网格上的数据。

xi形状为(.,ndim)的ndarray

要对网格数据进行采样的坐标

method字符串,可选

要执行的插值方法。支持“线性”和“最近”,以及“样条线2d”。目前只支持二维数据的Splinef2d。

bounds_error布尔值,可选

如果为True,则在输入数据的域外请求内插值时,将引发ValueError。如果为false,则 fill_value 是使用的。

fill_value数字,可选

如果提供,则为插值域外的点使用的值。如果无,则外推域之外的值。“Splinef2d”方法不支持外推。

退货
values_xndarray,Shape X.Shape [:-1] +值。形状 [NDIM:]

输入坐标处的插值值。

参见

NearestNDInterpolator

N维非结构化数据的最近邻插值

LinearNDInterpolator

N维非结构化数据的分段线性插值

RegularGridInterpolator

任意维正则网格上的线性最近邻插值

RectBivariateSpline

矩形网格上的二元样条逼近

注意事项

0.14 新版功能.

示例

对规则三维栅格点的简单示例函数求值:

>>> from scipy.interpolate import interpn
>>> def value_func_3d(x, y, z):
...     return 2 * x + 3 * y - z
>>> x = np.linspace(0, 4, 5)
>>> y = np.linspace(0, 5, 6)
>>> z = np.linspace(0, 6, 7)
>>> points = (x, y, z)
>>> values = value_func_3d(*np.meshgrid(*points, indexing='ij'))

在某一点上计算插值函数

>>> point = np.array([2.21, 3.12, 1.15])
>>> print(interpn(points, values, point))
[12.63]