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

ttuple of 1D ndarrays

knot vectors in directions 1, 2, … N, len(t[i]) == n[i] + k + 1

cndarray, shape (n1, n2, …, nN, …)

b-spline coefficients

kint or length-d tuple of integers

spline degrees. A single integer is interpreted as having this degree for all dimensions.

extrapolatebool, optional

Whether to extrapolate out-of-bounds inputs, or return nan. Default is to extrapolate.

See also


a one-dimensional B-spline object


an N-dimensional piecewise tensor product polynomial

ttuple of ndarrays

Knots vectors.


Coefficients of the tensor-produce spline.

ktuple of integers

Degrees for each dimension.

extrapolatebool, optional

Whether to extrapolate or return nans for out-of-bounds inputs. Defaults to true.


__call__(xi, *[, nu, extrapolate])

Evaluate the tensor product b-spline at xi.

design_matrix(xvals, t, k[, extrapolate])

Construct the design matrix as a CSR format sparse array.