PyMC3
Probabilistic programming in Python
...Fit your model using gradient-based MCMC algorithms like NUTS, using ADVI for fast approximate inference — including minibatch-ADVI for scaling to large datasets, or using Gaussian processes to build Bayesian nonparametric models. PyMC3 includes a comprehensive set of pre-defined statistical distributions that can be used as model building blocks. Sometimes an unknown parameter or variable in a model is not a scalar value or a fixed-length vector, but a function. A Gaussian process (GP) can be used as a prior probability distribution whose support is over the space of continuous functions. PyMC3 provides rich support for defining and using GPs. Variational inference saves computational cost by turning a problem of integration into one of optimization. ...