插值 (scipy.interpolate)#

用于插值函数和对象的子包。

有关选择常规程序的建议和其他使用细节,请参阅用户指南

一元插值#

make_interp_spline(x, y[, k, t, bc_type, ...])

创建具有指定阶数和边界条件的插值 B 样条。

CubicSpline(x, y[, axis, bc_type, extrapolate])

拟合数值的分段三次插值器(C2 连续)。

PchipInterpolator(x, y[, axis, extrapolate])

PCHIP 保形插值器(C1 连续)。

Akima1DInterpolator(x, y[, axis, method, ...])

Akima“视觉平滑”插值器(C1 连续)。

FloaterHormannInterpolator(points, values, *)

Floater-Hormann 重心有理插值器(在实轴上 C∞ 连续)。

BarycentricInterpolator(xi[, yi, axis, wi, ...])

重心(具有改进稳定性的拉格朗日)插值器(C∞ 连续)。

KroghInterpolator(xi, yi[, axis])

Krogh 插值器(C∞ 连续)。

CubicHermiteSpline(x, y, dydx[, axis, ...])

用于拟合数值和一阶导数的分段三次插值器(C1 连续)。

一元插值的低级数据结构

PPoly(c, x[, extrapolate, axis])

幂基分段多项式。

BPoly(c, x[, extrapolate, axis])

伯恩斯坦基分段多项式。

BSpline(t, c, k[, extrapolate, axis])

B 样条基一元样条。

多元插值#

非结构化数据

LinearNDInterpolator(points, values[, ...])

N > 1 维的分段线性插值器。

NearestNDInterpolator(x, y[, rescale, ...])

N > 1 维的最近邻插值器。

CloughTocher2DInterpolator(points, values[, ...])

N=2 维的分段三次、C1 连续、曲率最小化插值器。

RBFInterpolator(y, d[, neighbors, ...])

N ≥ 1 维的径向基函数 (RBF) 插值器。

网格数据

RegularGridInterpolator(points, values[, ...])

N ≥ 1 维矩形网格上的指定阶数插值器。

张量积多项式和样条的低级数据结构

NdPPoly(c, x[, extrapolate])

分段张量积多项式

NdBSpline(t, c, k, *[, extrapolate])

张量积样条对象。

一维样条平滑与逼近#

make_lsq_spline(x, y, t[, k, w, axis, ...])

创建满足最小二乘 (LSQ) 标准的平滑 B 样条。

make_smoothing_spline(x, y[, w, lam, axis])

创建满足广义交叉验证 (GCV) 标准的平滑 B 样条。

make_splrep(x, y, *[, w, xb, xe, k, s, t, ...])

创建具有有界误差且导数跳跃最小的平滑 B 样条函数。

make_splprep(x, *[, w, u, ub, ue, k, s, t, ...])

创建具有有界误差且导数跳跃最小的平滑参数 B 样条曲线。

generate_knots(x, y, *[, w, xb, xe, k, s, ...])

生成节点向量,直到满足最小二乘 (LSQ) 标准。

有理逼近#

AAA(x, y, *[, rtol, max_terms, clean_up, ...])

AAA 实数或复数有理逼近。

用于一维和二维样条拟合的 FITPACK 例程接口#

本节列出了用于一维和二维平滑样条的 FITPACK 功能封装。在大多数情况下,用户最好使用前面章节中列出的更高级别的例程。

一维 FITPACK 样条#

此包提供了两套功能等效的包装:面向对象的接口和函数式接口。

函数式 FITPACK 接口

splrep(x, y[, w, xb, xe, k, task, s, t, ...])

寻找一维曲线的 B 样条表示。

splprep(x[, w, u, ub, ue, k, task, s, t, ...])

寻找 N 维曲线的 B 样条表示。

splev(x, tck[, der, ext])

评估 B 样条及其导数。

splint(a, b, tck[, full_output])

计算两个给定点之间 B 样条的定积分。

sproot(tck[, mest])

寻找三次 B 样条的根。

spalde(x, tck)

评估一个点(或一组点)上 B 样条及其所有直到 k 阶(样条阶数)的导数,0 阶为样条本身。

splder(tck[, n])

计算给定样条导数的样条表示。

splantider(tck[, n])

计算给定样条的反导数(积分)样条。

insert(x, tck[, m, per])

在 B 样条中插入节点。

面向对象的 FITPACK 接口

UnivariateSpline(x, y[, w, bbox, k, s, ext, ...])

拟合给定数据集的一维平滑样条。

InterpolatedUnivariateSpline(x, y[, w, ...])

给定数据集的一维插值样条。

LSQUnivariateSpline(x, y, t[, w, bbox, k, ...])

具有显式内部节点的一维样条。

二维 FITPACK 样条#

网格数据

RectBivariateSpline(x, y, z[, bbox, kx, ky, ...])

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

RectSphereBivariateSpline(u, v, r[, s, ...])

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

用于非结构化数据(面向对象接口)

BivariateSpline()

二元样条的基类。

SmoothBivariateSpline(x, y, z[, w, bbox, ...])

平滑二元样条逼近。

SmoothSphereBivariateSpline(theta, phi, r[, ...])

球坐标下的平滑二元样条逼近。

LSQBivariateSpline(x, y, z, tx, ty[, w, ...])

加权最小二乘二元样条逼近。

LSQSphereBivariateSpline(theta, phi, r, tt, tp)

球坐标下的加权最小二乘二元样条逼近。

用于非结构化数据(函数式接口)

bisplrep(x, y, z[, w, xb, xe, yb, ye, kx, ...])

寻找曲面的二元 B 样条表示。

bisplev(x, y, tck[, dx, dy])

评估二元 B 样条及其导数。

附加工具#

lagrange(x, w)

返回拉格朗日插值多项。

approximate_taylor_polynomial(f, x, degree, ...)

通过多项式拟合估算 f 在 x 处的泰勒多项式。

pade(an, m[, n])

将多项式的帕德 (Pade) 逼近返回为两个多项式的比率。

interpn(points, values, xi[, method, ...])

常规或矩形网格上的多维插值。

griddata(points, values, xi[, method, ...])

用于在多维空间中对非结构化数据进行插值的便捷函数。

barycentric_interpolate(xi, yi, x[, axis, ...])

用于重心插值的便捷函数。

krogh_interpolate(xi, yi, x[, der, axis])

用于 Krogh 插值的便捷函数。

pchip_interpolate(xi, yi, x[, der, axis])

用于 PCHIP 插值的便捷函数。

Rbf(\*args, \*\*kwargs)

用于将函数从 N 维散乱数据插值到 M 维域的径向基函数类(旧版)。

interp1d(x, y[, kind, axis, copy, ...])

插值一元函数(旧版)。

interp2d(x, y, z[, kind, copy, ...])

用于二维插值的类(已弃用并移除)。