本文簡要介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。