Rbf#
- 类 scipy.interpolate.Rbf(*args, **kwargs)[源代码]#
一个类,用于对 N-D 散布数据到 M-D 域的函数采用径向基函数插值。
传统
该类被视为传统,将不再接收更新。这也意味着它将在未来的 SciPy 版本中被删除。
Rbf
是传统代码,如需新用法,请改用RBFInterpolator
。- 参数:
- *args数组
x、y、z、…、d,x、y、z、… 是节点的坐标,d 是节点上的值数组
- functionstr 或可调用对象,可选
径向基函数(基于规范计算的半径 r);默认值为“multiquadric”
'multiquadric': sqrt((r/self.epsilon)**2 + 1) 'inverse': 1.0/sqrt((r/self.epsilon)**2 + 1) 'gaussian': exp(-(r/self.epsilon)**2) 'linear': r 'cubic': r**3 'quintic': r**5 'thin_plate': r**2 * log(r)
如果是可调用对象,则它必须采用 2 个参数 (self, r)。epsilon 参数将作为 self.epsilon 提供。传入的其他关键字参数也将被提供。
- epsilonfloat,可选
高斯函数或多二次函数的可调常量 - 默认为节点之间的近似平均距离(是一个好的开始)。
- smoothfloat,可选
大于零的值增加逼近的平滑度。0 用于插值(默认),在这种情况下,函数将始终通过节点点。
- normstr,可调用,可选
返回两点之间的“距离”的函数,输入为位置数组 (x, y, z, ...),输出为距离数组。例如,默认值:“欧几里得”,结果是从
x1
中的每个点到x2
中的每个点的距离矩阵。有关更多选项,请参见 scipy.spatial.distances.cdist 的文档。- modestr,可选
插值的模式,可以是 "1-D"(默认)或 "N-D"。当模式为 "1-D" 时,数据 d 将被视为 1 维并进行内部扁平化。当模式为 "N-D" 时,数据 d 被假定为形状为 (n_samples, m) 的数组,其中 m 为目标域的维度。
另请参见
示例
>>> import numpy as np >>> from scipy.interpolate import Rbf >>> rng = np.random.default_rng() >>> x, y, z, d = rng.random((4, 50)) >>> rbfi = Rbf(x, y, z, d) # radial basis function interpolator instance >>> xi = yi = zi = np.linspace(0, 1, 20) >>> di = rbfi(xi, yi, zi) # interpolated values >>> di.shape (20,)
- 属性:
- Nint
数据点的数量(由输入数组确定)。
- dindarray
每个数据坐标 xi 中的数据值的一维数组。
- xindarray
数据坐标的二维数组。
- functionstr 或可调用
径向基函数。请参见“参数”下的描述。
- epsilonfloat
高斯函数或多重二次函数使用的参数。请参见“参数”。
- smoothfloat
平滑参数。请参见“参数”下的描述。
- normstr 或可调用
距离函数。请参见“参数”下的描述。
- modestr
插值的模式。请参见“参数”下的描述。
- nodesndarray
插值的一个一维节点值数组。
- A内部属性,请勿使用
方法
__call__
(*args)将 self 作为函数调用。