by pymc-devs

pymc-devs / pymc3

Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Thean...

5.3K Stars 1.3K Forks Last release: 3 months ago (v3.9.3) Other 7.5K Commits 35 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

.. image:: :height: 100px :alt: PyMC3 logo :align: center

|Build Status| |Coverage| |NumFOCUS_badge| |Binder| |Dockerhub|

PyMC3 is a Python package for Bayesian statistical modeling and Probabilistic Machine Learning focusing on advanced Markov chain Monte Carlo (MCMC) and variational inference (VI) algorithms. Its flexibility and extensibility make it applicable to a large suite of problems.

Check out the

getting started guide 
, or
interact with live examples 
using Binder! For questions on PyMC3, head on over to our
PyMC Discourse 
__ forum.


  • Intuitive model specification syntax, for example,
    x ~ N(0,1)
    translates to
    x = Normal('x',0,1)
  • Powerful sampling algorithms, such as the
    No U-Turn
    __, allow complex models with thousands of parameters with little specialized knowledge of fitting algorithms.
  • Variational inference:
    __ for fast approximate posterior estimation as well as mini-batch ADVI for large data sets.
  • Relies on
    __ which provides:
    • Computation optimization and dynamic C compilation
    • Numpy broadcasting and advanced indexing
    • Linear algebra operators
    • Simple extensibility
  • Transparent support for missing value imputation

Getting started

If you already know about Bayesian statistics:

  • API quickstart guide 
  • The
    PyMC3 tutorial 
  • PyMC3 examples 
    __ and the
    API reference 

Learn Bayesian statistics with a book together with PyMC3:

  • Probabilistic Programming and Bayesian Methods for Hackers 
    __: Fantastic book with many applied code examples.
  • PyMC3 port of the book "Doing Bayesian Data Analysis" by John Kruschke 
    __ as well as the
    second edition 
    __: Principled introduction to Bayesian data analysis.
  • PyMC3 port of the book "Statistical Rethinking A Bayesian Course with Examples in R and Stan" by Richard McElreath 
  • PyMC3 port of the book "Bayesian Cognitive Modeling" by Michael Lee and EJ Wagenmakers 
    __: Focused on using Bayesian statistics in cognitive modeling.
  • Bayesian Analysis with Python  
    __ (second edition) by Osvaldo Martin: Great introductory book. (
    __ and errata).

PyMC3 talks

There are also several talks on PyMC3 which are gathered in this

YouTube playlist 


The latest release of PyMC3 can be installed from PyPI using



pip install pymc3

Note: Running

pip install pymc
will install PyMC 2.3, not PyMC3, from PyPI.

Or via conda-forge:


conda install -c conda-forge pymc3

Plotting is done using

__ - if you follow the installation instructions above, then it will be installed alongside

The current development branch of PyMC3 can be installed from GitHub, also using



pip install git+

To ensure the development branch of Theano is installed alongside PyMC3 (recommended), you can install PyMC3 using the

file. This requires cloning the repository to your computer:


git clone
cd pymc3
pip install -r requirements.txt

However, if a recent version of Theano has already been installed on your system, you can install PyMC3 directly from GitHub.

Another option is to clone the repository and install PyMC3 using

python install
python develop


PyMC3 is tested on Python 3.6 and depends on Theano, NumPy, SciPy, and Pandas (see

for version information).


In addtion to the above dependencies, the GLM submodule relies on


Citing PyMC3

Salvatier J., Wiecki T.V., Fonnesbeck C. (2016) Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2:e55

DOI: 10.7717/peerj-cs.55 


We are using 
__ as our main communication channel. You can also follow us on
Twitter @pymc_devs 
__ for updates and other announcements.

To ask a question regarding modeling or usage of PyMC3 we encourage posting to our Discourse forum under the

“Questions” Category 
. You can also suggest feature in the
“Development” Category 

To report an issue with PyMC3 please use the

issue tracker 

Finally, if you need to get in touch for non-technical information about the project,

send us an e-mail 


Apache License, Version

Software using PyMC3

  • Exoplanet 
    __: a toolkit for modeling of transit and/or radial velocity observations of exoplanets and other astronomical time series.
  • Bambi 
    __: BAyesian Model-Building Interface (BAMBI) in Python.
  • pymc3_models 
    __: Custom PyMC3 models built on top of the scikit-learn API.
  • PMProphet 
    __: PyMC3 port of Facebook's Prophet model for timeseries modeling
  • webmc3 
    __: A web interface for exploring PyMC3 traces
  • sampled 
    __: Decorator for PyMC3 models.
  • NiPyMC 
    __: Bayesian mixed-effects modeling of fMRI data in Python.
  • beat 
    __: Bayesian Earthquake Analysis Tool.
  • pymc-learn 
    _: Custom PyMC models built on top of pymc3models/scikit-learn API
  • fenics-pymc3 
    __: Differentiable interface to FEniCS, a library for solving partial differential equations.

Please contact us if your software is not listed here.

Papers citing PyMC3


Google Scholar 
__ for a continuously updated list.


See the

GitHub contributor
. Also read our
Code of Conduct 
guidelines for a better contributing experience.


PyMC3 is a non-profit project under NumFOCUS umbrella. If you want to support PyMC3 financially, you can donate


PyMC for enterprise

PyMC is now available as part of the Tidelift Subscription!

Tidelift is working with PyMC and the maintainers of thousands of other open source projects to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while contributing financially to PyMC -- making it even more robust, reliable and, let's face it, amazing!

|tideliftlearn| |tideliftdemo|





.. |Binder| image:: :target: .. |Build Status| image:: :target: .. |Coverage| image:: :target: .. |Dockerhub| image:: :target: .. |NumFOCUS| image:: :target: .. |Quantopian| image:: :target: .. |NumFOCUSbadge| image:: :target: .. |ODSC| image:: :target: .. |tidelift| image::!-2dd160.svg?colorA=58595b&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC :target: .. |tideliftlearn| image::;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC :target: .. |tideliftdemo| image::;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAAVhJREFUKBV1kj0vBFEUhmd2sdZHh2IlGhKFQuOviEYiNlFodCqtUqPxA%2FwCjUTnDygkGoVERFQaZFlE9nreO%2BdM5u5wkifvuee892Pu3CyEcA0DeIc%2B9IwftJsR6Cko3uCjguZdjuBZhhwmYDjGrOC96WED41UtsgEdGEAPlmAfpuAbFF%2BFZLfoMfRBGzThDtLgePPwBIpdddGzOArhPHUXowbNptE2www6a%2Fm96Y3pHN7oQ1s%2B13pxt1ENaKzBFWyWzaJ%2BRO0C9Jny6VPSoKjLVbMDC5bn5OPuJF%2BBSe95PVEMuugY5AegS9fCh7BedP45hRnj8TC34QQUe9bTZyh2KgvFk2vc8GIlXyTfsvqr6bPpNgv52ynnlomZJNpB70Xhl%2Bf6Sa02p1bApEfnETwxVa%2Faj%2BW%2FFtHltmxS%2FO3krvpTtTnVgu%2F6gvHRFvG78Ef3kOe5PimJXycY74blT5R%2BAAAAAElFTkSuQmCC :target:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.