Framework for fitting functions to data with SciPy
Project description
Fitting SciKit
A framework for fitting functions to data with SciPy which unifies the various available interpolation methods and provides a common interface to them based on the following simple methods:
Fitter.__init__(p): set parameters of interpolation function, e.g. polynomial degree
Fitter.fit(x, y): fit given inputoutput data
Fitter.__call__(x) or Fitter.eval(x): evaluate function on new input data
Each interpolation routine falls in one of two categories: scatter fitting or grid fitting. They share the same interface, only differing in the definition of input data x.
Scatterfitters operate on unstructured scattered input data (i.e. not on a grid). The input data consists of a sequence of x coordinates and a sequence of corresponding y data, where the order of the x coordinates does not matter and their location can be arbitrary. The x coordinates can have an arbritrary dimension (although most classes are specialised for 1D or 2D data). If the dimension is bigger than 1, the coordinates are provided as an array of column vectors. These fitters have ScatterFit as base class.
Gridfitters operate on input data that lie on a grid. The input data consists of a sequence of xaxis tick sequences and the corresponding array of y data. These fitters have GridFit as base class.
The module is organised as follows:
Scatter fitters
ScatterFit: Abstract base class for scatter fitters
LinearLeastSquaresFit: Fit linear regression model to data using SVD
Polynomial1DFit: Fit polynomial to 1D data
Polynomial2DFit: Fit polynomial to 2D data
PiecewisePolynomial1DFit: Fit piecewise polynomial to 1D data
Independent1DFit: Interpolate Ndimensional matrix along given axis
Delaunay2DScatterFit: Interpolate scalar function of 2D data, based on Delaunay triangulation and cubic / linear interpolation
NonLinearLeastSquaresFit: Fit a generic function to data, based on nonlinear least squares optimisation
GaussianFit: Fit Gaussian curve to multidimensional data
Spline1DFit: Fit a Bspline to 1D data
Spline2DScatterFit: Fit a Bspline to scattered 2D data
RbfScatterFit: Do radial basis function (RBF) interpolation
Grid fitters
GridFit: Abstract base class for grid fitters
Spline2DGridFit: Fit a Bspline to 2D data on a rectangular grid
Helper functions
squash: Flatten array, but not necessarily all the way to a 1D array
unsquash: Restore an array that was reshaped by squash
sort_grid: Ensure that the coordinates of a rectangular grid are in ascending order
desort_grid: Undo the effect of sort_grid
vectorize_fit_func: Factory that creates vectorised version of function to be fitted to data
randomise: Randomise fitted function parameters by resampling residuals
Source
Contact
Ludwig Schwardt <ludwig at ska.ac.za>
History
0.7.2 (20231010)
Remove distutils and move to pkgutilstyle namespace package (#12)
Remove run_module_suite function (a nose leftover) (#11)
0.7.1 (20230921)
Fix deprecated NumPy type alias (np.float) (#10)
0.7 (20180920)
Python 3 support (#8)
Clean up tests and more flake8 (line lengths) (#9)
0.6 (20161205)
Fix pip installation, clean up setup procedure, flake8 and add README (#3)
PiecewisePolynomial1DFit updated to work with scipy 0.18.0 (#4)
Delaunay2DScatterFit now based on scipy.interpolate.griddata, which is orders of magnitude faster, more robust and smoother. Its default interpolation changed from ‘nn’ (natural neighbours  no longer available) to ‘cubic’. (#5)
Delaunay2DGridFit removed as there is no equivalent anymore (#5)
0.5.1 (20121029)
Use proper name for np.linalg.LinAlgError
0.5 (20110926)
Initial release of scikits.fitting
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for scikits.fitting0.7.2py2.py3noneany.whl
Algorithm  Hash digest  

SHA256  15798d86f77929bdbe5ce4f88c42c812907d984987db5b8f759c849a9b826361 

MD5  17f547dc9997e5e9a2589d24de1e3bd8 

BLAKE2b256  178c4767f7107cfa41146f62ad6b618fbbcefc81c8ed3b54d586bdf89fa4b9ad 