I have been playing arround with pystan today which is the interface for stan, a language for statistical models. It allows for relatively easy implementation of Bayesian inference for data analysis. More specifically, you suppose that a process in the real world is described by probabilities and based on that you formulate a model. You don't know the parameters of that model. However, you do have some data. Bayesian inference lets you put the data and model together to define a "new model" which is in some kind of way connected to the data.
Numerically, solving this problem is very hard. It relies on brute force a.k.a Monte carlo :P It can be quite complicated to develop efficient algorihms for this. But pystan has some smart algorithms built in it so that solves a lot when you a starting out with these type of problems.
Here is a nice short course on Bayesian inference for peeps with experience in R or python ->
with some exercises https://github.com/rasmusab/bayesianprobabilitiesworkshop
Note the pystan stuff is a bit outdated you need to split
model = pystan.StanModel(model_code = model_string) fit = model.sampling(data=data_list)