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

A class for radial basis function interpolation of functions from N-D scattered data to an M-D domain.


This class is considered legacy and will no longer receive updates. This could also mean it will be removed in future SciPy versions. Rbf is legacy code, for new usage please use RBFInterpolator instead.


x, y, z, …, d, where x, y, z, … are the coordinates of the nodes and d is the array of values at the nodes

functionstr or callable, optional

The radial basis function, based on the radius, r, given by the norm (default is Euclidean distance); the default is ‘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)

If callable, then it must take 2 arguments (self, r). The epsilon parameter will be available as self.epsilon. Other keyword arguments passed in will be available as well.

epsilonfloat, optional

Adjustable constant for gaussian or multiquadrics functions - defaults to approximate average distance between nodes (which is a good start).

smoothfloat, optional

Values greater than zero increase the smoothness of the approximation. 0 is for interpolation (default), the function will always go through the nodal points in this case.

normstr, callable, optional

A function that returns the ‘distance’ between two points, with inputs as arrays of positions (x, y, z, …), and an output as an array of distance. E.g., the default: ‘euclidean’, such that the result is a matrix of the distances from each point in x1 to each point in x2. For more options, see documentation of scipy.spatial.distances.cdist.

modestr, optional

Mode of the interpolation, can be ‘1-D’ (default) or ‘N-D’. When it is ‘1-D’ the data d will be considered as 1-D and flattened internally. When it is ‘N-D’ the data d is assumed to be an array of shape (n_samples, m), where m is the dimension of the target domain.

See also



>>> 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

The number of data points (as determined by the input arrays).


The 1-D array of data values at each of the data coordinates xi.


The 2-D array of data coordinates.

functionstr or callable

The radial basis function. See description under Parameters.


Parameter used by gaussian or multiquadrics functions. See Parameters.


Smoothing parameter. See description under Parameters.

normstr or callable

The distance function. See description under Parameters.


Mode of the interpolation. See description under Parameters.


A 1-D array of node values for the interpolation.

Ainternal property, do not use



Call self as a function.