Skip to content
A package for the sparse identification of nonlinear dynamical systems from data
Branch: master
Clone or download
Pull request Compare This branch is 272 commits ahead, 8 commits behind Ohjeah:master.



BuildCI Documentation Status PyPI Codecov JOSS

PySINDy is a sparse regression package with several implementations for the Sparse Identification of Nonlinear Dynamical systems (SINDy) method.


Installing with pip

If you are using Linux or macOS you can install PySINDy with pip:

pip install pysindy

Installing from source

First clone this repository:

git clone

Then, to install the package, run

pip install .

If you do not have pip you can instead use

python install

If you do not have root access, you should add the --user option to the above lines.


The documentation for PySINDy can be found here.

Community guidelines

Contributing code

We welcome contributions to PySINDy. To contribute a new feature please submit a pull request. To be accepted your code should conform to PEP8 (you may choose to use flake8 to test this before submitting your pull request). Your contributed code should pass all unit tests. Upon submission of a pull request, your code will be linted and tested automatically, but you may also choose to lint it yourself invoking

pre-commit -a -v

as well as test it yourself by running


Reporting issues or bugs

If you find a bug in the code or want to request a new feature, please open an issue.

Getting help

For help using PySINDy please consult the documentation and/or our examples, or create an issue.


  • Brunton, Steven L., Joshua L. Proctor, and J. Nathan Kutz. Discovering governing equations from data by sparse identification of nonlinear dynamical systems. Proceedings of the National Academy of Sciences 113.15 (2016): 3932-3937. [DOI]
  • Champion, Kathleen, Peng Zheng, Aleksandr Y. Aravkin, Steven L. Brunton, and J. Nathan Kutz. A unified sparse optimization framework to learn parsimonious physics-informed models from data. arXiv preprint arXiv:1906.10612 (2019). [arXiv]
You can’t perform that action at this time.