Bayesian inference that stays in Python-land
PyMC turns statistical notation into Python code and runs NUTS or variational inference so you don't have to hand-tune samplers.

What it does
PyMC is a Python library for Bayesian statistical modeling. You define random variables with syntax that mirrors mathematical notation—x = Normal('x', 0, 1)—and it fits the model using MCMC or variational inference. Under the hood, PyTensor handles computation graph optimization and can compile down to C or JAX, keeping things NumPy-friendly.
The interesting bit The library includes the No-U-Turn Sampler (NUTS), which adapts to complex models with thousands of parameters without manual tuning of proposal distributions. It also transparently imputes missing values and offers both full and mini-batch ADVI when you need approximate posteriors in a hurry.
Key highlights
- Equation-like model specification that maps statistical notation directly to Python
- Built-in NUTS and other advanced MCMC algorithms for high-dimensional problems
- Variational inference via ADVI, including mini-batch variants for large datasets
PyTensorbackend with dynamic C or JAX compilation and NumPy-style broadcasting- Transparent missing-value imputation during model fitting
Verdict A solid choice for statisticians and data scientists who want serious Bayesian machinery without leaving Python. If you don’t already speak Bayesian, the docs assume you do—there is no hand-holding on what a prior is.
Frequently asked
- What is pymc-devs/pymc?
- PyMC turns statistical notation into Python code and runs NUTS or variational inference so you don't have to hand-tune samplers.
- Is pymc open source?
- Yes — pymc-devs/pymc is an open-source project tracked on heatdrop.
- What language is pymc written in?
- pymc-devs/pymc is primarily written in Python.
- How popular is pymc?
- pymc-devs/pymc has 9.7k stars on GitHub.
- Where can I find pymc?
- pymc-devs/pymc is on GitHub at https://github.com/pymc-devs/pymc.