bundles / scipy 1.17.1 / scipy / interpolate / _fitpack2 / LSQUnivariateSpline
class
scipy.interpolate._fitpack2:LSQUnivariateSpline
Signature
class LSQUnivariateSpline ( x , y , t , w = None , bbox = [None, None] , k = 3 , ext = 0 , check_finite = False ) Members
Summary
1-D spline with explicit internal knots.
Extended Summary
Fits a spline y = spl(x) of degree k to the provided x, y data. t specifies the internal knots of the spline
Parameters
x: (N,) array_likeInput dimension of data points -- must be increasing
y: (N,) array_likeInput dimension of data points
t: (M,) array_likeinterior knots of the spline. Must be in ascending order and
bbox[0] < t[0] < ... < t[-1] < bbox[-1]w: (N,) array_like, optionalweights for spline fitting. Must be positive. If None (default), weights are all 1.
bbox: (2,) array_like, optional2-sequence specifying the boundary of the approximation interval. If None (default),
bbox = [x[0], x[-1]].k: int, optionalDegree of the smoothing spline. Must be 1 <=
k<= 5. Default isk= 3, a cubic spline.ext: int or str, optionalControls the extrapolation mode for elements not in the interval defined by the knot sequence.
if ext=0 or 'extrapolate', return the extrapolated value.
if ext=1 or 'zeros', return 0
if ext=2 or 'raise', raise a ValueError
if ext=3 of 'const', return the boundary value.
The default value is 0.
check_finite: bool, optionalWhether to check that the input arrays contain only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, non-termination or non-sensical results) if the inputs do contain infinities or NaNs. Default is False.
Raises
: ValueErrorIf the interior knots do not satisfy the Schoenberg-Whitney conditions
Notes
The number of data points must be larger than the spline degree k.
Knots t must satisfy the Schoenberg-Whitney conditions, i.e., there must be a subset of data points x[j] such that t[j] < x[j] < t[j+k+1], for j=0, 1,...,n-k-2.
Array API Standard Support
LSQUnivariateSpline is not in-scope for support of Python Array API Standard compatible backends other than NumPy.
See dev-arrayapi for more information.
Examples
import numpy as np from scipy.interpolate import LSQUnivariateSpline, UnivariateSpline import matplotlib.pyplot as plt rng = np.random.default_rng() x = np.linspace(-3, 3, 50) y = np.exp(-x**2) + 0.1 * rng.standard_normal(50)✓
t = [-1, 0, 1] spl = LSQUnivariateSpline(x, y, t)✓
xs = np.linspace(-3, 3, 1000)
✓plt.plot(x, y, 'ro', ms=5) plt.plot(xs, spl(xs), 'g-', lw=3)✗
plt.show()
✓
spl.get_knots()
✗x = np.arange(10) s = UnivariateSpline(x, x, s=0)✓
s.get_knots()
✗knt = s.get_knots() s1 = LSQUnivariateSpline(x, x, knt[1:-1]) # Chop 1st and last knot✓
s1.get_knots()
✗See also
- InterpolatedUnivariateSpline
a interpolating univariate spline for a given set of data points.
- UnivariateSpline
a smooth univariate spline to fit a given set of data points.
- spalde
a function to evaluate all derivatives of a B-spline
- splev
a function to evaluate a B-spline or its derivatives
- splint
a function to evaluate the definite integral of a B-spline between two given points
- splrep
a function to find the B-spline representation of a 1-D curve
- sproot
a function to find the roots of a cubic B-spline
Aliases
-
scipy.interpolate.LSQUnivariateSpline