bundles / scipy 1.17.1 / scipy / interpolate / _bsplines / BSpline / basis_element
classmethod
scipy.interpolate._bsplines:BSpline.basis_element
Summary
Return a B-spline basis element B(x | t[0], ..., t[k+1]).
Parameters
t: ndarray, shape (k+2,)internal knots
extrapolate: bool or 'periodic', optionalwhether to extrapolate beyond the base interval,
t[0] .. t[k+1], or to return nans. If 'periodic', periodic extrapolation is used. Default is True.
Returns
basis_element: callableA callable representing a B-spline basis element for the knot vector t.
Notes
The degree of the B-spline, k, is inferred from the length of t as len(t)-2. The knot vector is constructed by appending and prepending k+1 elements to internal knots t.
Examples
Construct a cubic B-spline:import numpy as np from scipy.interpolate import BSpline b = BSpline.basis_element([0, 1, 2, 3, 4]) k = b.k✓
b.t[k:-k]
✗k
✓t = [0, 1, 1, 2] b = BSpline.basis_element(t) def f(x): return np.where(x < 1, x*x, (2. - x)**2)✓
import matplotlib.pyplot as plt fig, ax = plt.subplots() x = np.linspace(0, 2, 51)✓
ax.plot(x, b(x), 'g', lw=3) ax.plot(x, f(x), 'r', lw=8, alpha=0.4)✗
ax.grid(True) plt.show()✓

Aliases
-
scipy.interpolate.BSpline.basis_element