Skip to content
Switch branches/tags

circleci codecov readthedocs downloads pypi binder

Chaospy is a numerical toolbox for performing uncertainty quantification using polynomial chaos expansions, advanced Monte Carlo methods implemented in Python. It also include a full suite of tools for doing low-discrepancy sampling, quadrature creation, polynomial manipulations, and a lot more.

The philosophy behind chaospy is not to be a single tool that solves every uncertainty quantification problem, but instead be a specific tools to aid to let the user solve problems themselves. This includes both well established problems, but also to be a foundry for experimenting with new problems, that are not so well established. To do this, emphasis is put on the following:

  • Focus on an easy to use interface that embraces the pythonic code style.
  • Make sure the code is "composable", such a way that changing one part of the code with something user defined should be easy and encouraged.
  • Try to support a broad width of the various methods for doing uncertainty quantification where that makes sense to involve chaospy.
  • Make sure that chaospy plays nice with a large set of of other other similar projects. This includes numpy, scipy, scikit-learn, statsmodels, openturns, and gstools to mention a few.
  • Contribute all code to the community open source.


Installation should be straight forward from pip:

pip install chaospy

Or if Conda is more to your liking:

conda install -c conda-forge chaospy

Then go over to the tutorial collection to see how to use the toolbox.


Chaospy uses poetry to manage its development installation. Assuming poetry installed on your system, installing chaospy for development can be done from the repository root with the command:

poetry install

This will install all required dependencies and chaospy into a virtual environment. If you are not already managing your own virtual environment, you can use poetry to activate and deactivate with:

poetry shell


To ensure that the code run on your local system, run the following:

poetry run pytest --nbval-lax --doctest-modules \
    chaospy/ tests/ docs/*/*.{rst,ipynb}


The documentation build assumes that pandoc is installed on your system and available in your path.

To build documentation locally on your system, use make from the docs/ folder:

cd docs/
make html

Run make without argument to get a list of build targets. The HTML target stores output to the folder doc/.build/html.