本文简要介绍 python 语言中 scipy.interpolate.interpn
的用法。
用法:
scipy.interpolate.interpn(points, values, xi, method='linear', bounds_error=True, fill_value=nan)#
规则或直线网格上的多维插值。
严格来说,并非支持所有规则网格 - 该函数适用于直线网格,即间距均匀或不均匀的矩形网格。
- points: float 的 ndarray 元组,形状为 (m1, ), ..., (mn, )
定义 n 维规则网格的点。每个维度中的点(即点元组的每个元素)必须严格升序或降序。
- values: 数组, 形状 (m1, ..., mn, ...)
n 维规则网格上的数据。复杂的数据是可以接受的。
- xi: ndarray 形状 (..., ndim)
对网格数据进行采样的坐标
- method: str,可选
要执行的插值方法。支持“linear”, “nearest”, “slinear”, “cubic”, “quintic”, “pchip” 和“splinef2d”。 “splinef2d” 仅支持二维数据。
- bounds_error: 布尔型,可选
如果为 True,则当在输入数据域之外请求内插值时,会引发 ValueError。如果为 False,则使用fill_value。
- fill_value: 编号,可选
如果提供,则用于插值域之外的点的值。如果没有,则外推域外的值。方法“splinef2d” 不支持外推。
- values_x: ndarray,形状 xi.shape[:-1] + values.shape[ndim:]
插值位于xi。请参阅注释以了解以下情况下的行为:
xi.ndim == 1
.
参数 ::
返回 ::
注意:
在
xi.ndim == 1
的情况下,新轴被插入到返回数组 value_x 的 0 位置,因此其形状为(1,) + values.shape[ndim:]
。如果输入数据的输入维度具有不相称的单位并且相差多个数量级,则插值可能会出现数值伪影。考虑在插值之前重新缩放数据。
例子:
在常规 3-D 网格的点上计算一个简单的示例函数:
>>> import numpy as np >>> 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]
相关用法
- Python SciPy interpolate.interp2d用法及代码示例
- Python SciPy interpolate.interp1d用法及代码示例
- Python SciPy interpolate.insert用法及代码示例
- Python SciPy interpolate.make_interp_spline用法及代码示例
- Python SciPy interpolate.krogh_interpolate用法及代码示例
- Python SciPy interpolate.InterpolatedUnivariateSpline用法及代码示例
- Python SciPy interpolate.BSpline用法及代码示例
- Python SciPy interpolate.LSQSphereBivariateSpline用法及代码示例
- Python SciPy interpolate.griddata用法及代码示例
- Python SciPy interpolate.splder用法及代码示例
- Python SciPy interpolate.LinearNDInterpolator用法及代码示例
- Python SciPy interpolate.PPoly用法及代码示例
- Python SciPy interpolate.NdBSpline用法及代码示例
- Python SciPy interpolate.pade用法及代码示例
- Python SciPy interpolate.barycentric_interpolate用法及代码示例
- Python SciPy interpolate.RegularGridInterpolator用法及代码示例
- Python SciPy interpolate.NdPPoly用法及代码示例
- Python SciPy interpolate.approximate_taylor_polynomial用法及代码示例
- Python SciPy interpolate.RectSphereBivariateSpline用法及代码示例
- Python SciPy interpolate.sproot用法及代码示例
- Python SciPy interpolate.splantider用法及代码示例
- Python SciPy interpolate.CloughTocher2DInterpolator用法及代码示例
- Python SciPy interpolate.BPoly用法及代码示例
- Python SciPy interpolate.BarycentricInterpolator用法及代码示例
- Python SciPy interpolate.splrep用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.interpn。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。