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]