Skip to main content

A python package for evolution operator learning

Project description

kooplearn logo

Static Badge GitHub Actions Workflow Status GitHub License

kooplearn is a Python library to learn evolution operators — also known as Koopman or Transfer operators — from data. kooplearn models can:

  1. Predict the evolution of states and observables.
  2. Estimate the eigenvalues and eigenfunctions of the learned evolution operators.
  3. Compute the dynamic mode decomposition of states and observables.
  4. Learn neural-network representations $x_t \mapsto \varphi(x_t)$ for evolution operators.

Why Choosing kooplearn?

  1. It is easy to use and strictly adheres to the scikit-learn API.

  2. Kernel estimators are state-of-the-art:

  3. Includes representation-learning losses (implemented both in Pytorch and JAX) to train neural-network Koopman embeddings.

  4. Offers a collection of datasets for benchmarking evolution-operator learning algorithms.

Installation

To install the core version of kooplearn:

pip

pip install kooplearn

uv

uv add kooplearn

To enable neural-network representations using kooplearn.torch or kooplearn.jax:

pip

# Torch
pip install "kooplearn[torch]"
# JAX
pip install "kooplearn[jax]"

uv

# Torch
uv add "kooplearn[torch]"
# JAX
uv add "kooplearn[jax]"

Contributing

We welcome contributions from the community! If you're interested in contributing to kooplearn, please follow these steps:

  1. Fork the repository on GitHub.
  2. Clone your forked repository to your local machine.
  3. Create a new branch for your feature or bug fix: git checkout -b feature/your-feature-name or git checkout -b bugfix/issue-number.
  4. Make your changes and commit them with descriptive commit messages.
  5. Push your changes to your forked repository.
  6. Create a pull request from your branch to the main branch of the original repository.
  7. Provide a clear title and description for your pull request, including any relevant information about the changes you've made.

We appreciate your contributions and will review your pull request as soon as possible. Thank you for helping improve kooplearn!

License

This project is licensed under the MIT License.

Main contributors

kooplearn is an joint effort between teams at the Italian Institute of Technology in Genoa and the École polytechnique in Paris. The main contributors to the project are (in alphabetical order):

  • Vladimir Kostic
  • Karim Lounici
  • Giacomo Meanti
  • Erfan Mirzaei
  • Pietro Novelli
  • Daniel Ordonez
  • Grégoire Pacreau
  • Massimiliano Pontil
  • Giacomo Turri

The mantainer of this repo is Pietro Novelli.


We hope you find kooplearn useful for your dynamical systems analysis. If you encounter any issues or have suggestions for improvements, please don't hesitate to raise an issue. Happy coding!

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

kooplearn-2.0.2.tar.gz (42.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kooplearn-2.0.2-py3-none-any.whl (89.6 kB view details)

Uploaded Python 3

File details

Details for the file kooplearn-2.0.2.tar.gz.

File metadata

  • Download URL: kooplearn-2.0.2.tar.gz
  • Upload date:
  • Size: 42.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kooplearn-2.0.2.tar.gz
Algorithm Hash digest
SHA256 a168313e7380bf2845b41daf60f3cf133e9120ec539a384a9815cf4bd830607e
MD5 8cce6fe095a0258d7b4bc682391a63b9
BLAKE2b-256 cc3bc4db26ffbf6b7778cca748527c5b8d63efcb3c6e763425ad34acc6401860

See more details on using hashes here.

File details

Details for the file kooplearn-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: kooplearn-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 89.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kooplearn-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f12493f9b88769f6cee3d691139b599fe6f0ee98d93de68dcfe5cc85f575493e
MD5 7be039ef2a274d1b0979fee0de4ca26d
BLAKE2b-256 f8ab91e593d3770202cf9d18a45d85f2fb0faa71089094c7c289197111644f36

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page