Rbf#
- class scipy.interpolate.Rbf(*args, **kwargs)[源]#
用于从 N 维散点数据到 M 维域的径向基函数插值的类(旧版)。
旧版
此类别被视为旧版,将不再接收更新。虽然我们目前没有计划将其移除,但我们建议新代码改用更现代的替代方案。
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 可用。传入的其他关键字参数也将可用。
- epsilon浮点数,可选
高斯函数或多二次函数的可调常数 - 默认为节点之间的近似平均距离(这是一个很好的起点)。
- smooth浮点数,可选
大于零的值会增加近似的平滑度。0 用于插值(默认),在这种情况下,函数将始终通过节点。
- normstr,可调用对象,可选
一个返回两点之间“距离”的函数,输入为位置数组 (x, y, z, …),输出为距离数组。例如,默认值:‘euclidean’,结果是
x1
中每个点到x2
中每个点的距离矩阵。有关更多选项,请参阅 scipy.spatial.distances.cdist 的文档。- modestr,可选
插值模式,可以是 '1-D'(默认)或 'N-D'。当为 '1-D' 时,数据 d 将被视为 1 维并在内部展平。当为 'N-D' 时,数据 d 被假定为形状为 (n_samples, m) 的数组,其中 m 是目标域的维度。
- 属性:
- N整型
数据点的数量(由输入数组决定)。
- dindarray
在每个数据坐标 xi 处的 1 维数据值数组。
- xindarray
数据坐标的 2 维数组。
- functionstr 或可调用对象
径向基函数。参见参数下的描述。
- epsilon浮点数
高斯函数或多二次函数使用的参数。参见参数。
- smooth浮点数
平滑参数。参见参数下的描述。
- normstr 或可调用对象
距离函数。参见参数下的描述。
- modestr
插值模式。参见参数下的描述。
- nodesndarray
用于插值的节点值的一维数组。
- A内部属性,请勿使用
方法
__call__
(*args)将自身作为函数调用。
另请参阅
示例
>>> 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,)