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
Contact
Ludwig Schwardt <ludwig at ska.ac.za>
History
0.7 (20180920)
 Python 3 support
 Clean up tests and more flake8 (line lengths)
0.6 (20161205)
 Fix pip installation, clean up setup procedure, flake8 and add README
 PiecewisePolynomial1DFit updated to work with scipy 0.18.0
 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’.
 Delaunay2DGridFit removed as there is no equivalent anymore
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.
Filename, size  File type  Python version  Upload date  Hashes 

Filename, size scikits.fitting0.7py2.py3noneany.whl (52.3 kB)  File type Wheel  Python version py2.py3  Upload date  Hashes View 
Filename, size scikits.fitting0.7.tar.gz (35.1 kB)  File type Source  Python version None  Upload date  Hashes View 
Hashes for scikits.fitting0.7py2.py3noneany.whl
Algorithm  Hash digest  

SHA256  a16b80726be5393d291e7c6244471b185b90a9d3d75aab3422f1e34ec89dfebe 

MD5  4789e9f83d0ffcb294f275f36280f6cc 

BLAKE2256  0a6f110af352e1b7771518c1e0a3b2e3cbd965fc648b2e004e1b859047815464 