cupyx.scipy.interpolate.NdBSpline#

class cupyx.scipy.interpolate.NdBSpline(t, c, k, *, extrapolate=None)[source]#

Tensor product spline object.

The value at point xp = (x1, x2, ..., xN) is evaluated as a linear combination of products of one-dimensional b-splines in each of the N dimensions:

c[i1, i2, ..., iN] * B(x1; i1, t1) * B(x2; i2, t2) * ... * B(xN; iN, tN)

Here B(x; i, t) is the i-th b-spline defined by the knot vector t evaluated at x.

Parameters:
  • t (tuple of 1D ndarrays) – knot vectors in directions 1, 2, … N, len(t[i]) == n[i] + k + 1

  • c (ndarray, shape (n1, n2, ..., nN, ...)) – b-spline coefficients

  • k (int or length-d tuple of integers) – spline degrees. A single integer is interpreted as having this degree for all dimensions.

  • extrapolate (bool, optional) – Whether to extrapolate out-of-bounds inputs, or return nan. Default is to extrapolate.

Variables:
  • t (tuple of ndarrays) – Knots vectors.

  • c (ndarray) – Coefficients of the tensor-produce spline.

  • k (tuple of integers) – Degrees for each dimension.

  • extrapolate (bool, optional) – Whether to extrapolate or return nans for out-of-bounds inputs. Defaults to true.

See also

BSpline

a one-dimensional B-spline object

NdPPoly

an N-dimensional piecewise tensor product polynomial

Methods

__call__(xi, *, nu=None, extrapolate=None)[source]#

Evaluate the tensor product b-spline at xi.

Parameters:
  • xi (array_like, shape(..., ndim)) – The coordinates to evaluate the interpolator at. This can be a list or tuple of ndim-dimensional points or an array with the shape (num_points, ndim).

  • nu (array_like, optional, shape (ndim,)) – Orders of derivatives to evaluate. Each must be non-negative. Defaults to the zeroth derivivative.

  • extrapolate (bool, optional) – Whether to exrapolate based on first and last intervals in each dimension, or return nan. Default is to self.extrapolate.

Returns:

values – Interpolated values at xi

Return type:

ndarray, shape xi.shape[:-1] + self.c.shape[ndim:]

classmethod design_matrix(xvals, t, k, extrapolate=True)[source]#

Construct the design matrix as a CSR format sparse array.

Parameters:
  • xvals (ndarray, shape(npts, ndim)) – Data points. xvals[j, :] gives the j-th data point as an ndim-dimensional array.

  • t (tuple of 1D ndarrays, length-ndim) – Knot vectors in directions 1, 2, … ndim,

  • k (int) – B-spline degree.

  • extrapolate (bool, optional) – Whether to extrapolate out-of-bounds values of raise a ValueError

Returns:

design_matrix – Each row of the design matrix corresponds to a value in xvals and contains values of b-spline basis elements which are non-zero at this value.

Return type:

a CSR matrix

__eq__(value, /)#

Return self==value.

__ne__(value, /)#

Return self!=value.

__lt__(value, /)#

Return self<value.

__le__(value, /)#

Return self<=value.

__gt__(value, /)#

Return self>value.

__ge__(value, /)#

Return self>=value.