当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy interpolate.Rbf用法及代码示例


本文简要介绍 python 语言中 scipy.interpolate.Rbf 的用法。

用法:

class  scipy.interpolate.Rbf(*args, **kwargs)#

从N-D分散数据到M-D域的径向基函数插值类。

遗产

此类被视为遗留类,将不再接收更新。这也可能意味着它将在未来的 SciPy 版本中被删除。 Rbf 是旧代码,对于新用途,请改用 RBFInterpolator

参数

*args 数组

x, y, z, ..., d, 其中 x, y, z, ... 是节点的坐标,d 是节点处的值数组

function str 或可调用,可选

径向基函数,基于由范数给出的半径 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 用于插值(默认),在这种情况下,函数将始终通过节点。

norm str,可调用,可选

返回两点之间的‘distance’ 的函数,输入为位置数组(x、y、z、...),输出为距离数组。例如,默认值:‘euclidean’,使得结果是到每个点的距离矩阵x1到每个点x2.有关更多选项,请参阅文档scipy.spatial.distances.cdist.

mode str,可选

插值模式,可以是“一维”(默认)或“N-D”。当它是“一维”时,数据 d 将被视为一维并在内部展平。当它是“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,)

属性

N int

数据点的数量(由输入数组确定)。

di ndarray

每个数据坐标 xi 处的一维数据值数组。

xi ndarray

数据坐标的二维数组。

function str 或可调用

径向基函数。请参阅参数下的说明。

epsilon 浮点数

高斯或多二次函数使用的参数。请参阅参数。

smooth 浮点数

平滑参数。请参阅参数下的说明。

norm str 或可调用

距离函数。请参阅参数下的说明。

mode str

插值模式。请参阅参数下的说明。

nodes ndarray

用于插值的一维节点值数组。

A 内部属性,请勿使用

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.Rbf。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。