# scipy.interpolate.NdPPoly¶

class scipy.interpolate.NdPPoly(c, x, extrapolate=None)[source]

Piecewise tensor product polynomial

The value at point `xp = (x', y', z', ...)` is evaluated by first computing the interval indices i such that:

```x[i] <= x' < x[i+1]
x[i] <= y' < x[i+1]
...
```

and then computing:

```S = sum(c[k0-m0-1,...,kn-mn-1,i,...,i[n]]
* (xp - x[i])**m0
* ...
* (xp[n] - x[n][i[n]])**mn
for m0 in range(k+1)
...
for mn in range(k[n]+1))
```

where `k[j]` is the degree of the polynomial in dimension j. This representation is the piecewise multivariate power basis.

Parameters
cndarray, shape (k0, …, kn, m0, …, mn, …)

Polynomial coefficients, with polynomial order kj and mj+1 intervals for each dimension j.

xndim-tuple of ndarrays, shapes (mj+1,)

Polynomial breakpoints for each dimension. These must be sorted in increasing order.

extrapolatebool, optional

Whether to extrapolate to out-of-bounds points based on first and last intervals, or to return NaNs. Default: True.

`PPoly`

piecewise polynomials in 1D

Notes

High-order polynomials in the power basis can be numerically unstable.

Attributes
xtuple of ndarrays

Breakpoints.

cndarray

Coefficients of the polynomials.

Methods

 `__call__`(x[, nu, extrapolate]) Evaluate the piecewise polynomial or its derivative Construct a new piecewise polynomial representing the derivative. Construct a new piecewise polynomial representing the antiderivative. `integrate`(ranges[, extrapolate]) Compute a definite integral over a piecewise polynomial. `integrate_1d`(a, b, axis[, extrapolate]) Compute NdPPoly representation for one dimensional definite integral `construct_fast`(c, x[, extrapolate]) Construct the piecewise polynomial without making checks.