Pioupiou is a nano probabilistic programming language, embedded into Python.
Use it to define probabilistic models :
>>> import pioupiou as pp
>>> a, b = 0.5, 1.0
>>> X = pp.Uniform(0.0, 1.0)
>>> E = pp.Normal(0.0, 0.01)
>>> Y = a * X + b + E
and to simulate them :
>>> n = 1000 # number of samples
>>> omega = pp.Omega(n)
>>> x, y = X(omega), Y(omega)
>>> x # doctest: +ELLIPSIS
array([6.36961687e-01, 2.69786714e-01, 4.09735239e-02, ..., 3.80007897e-01])
>>> y # doctest: +ELLIPSIS
array([1.09588258, 1.22942954, 1.01954509, 0.99213115, ..., 1.14366864])
That's about it! Use this data as you see fit.
Install the latest version of pioupiou with
$ pip install --upgrade git+https://github.com/boisgera/pioupiou.git
then have a look at the documentation : https://boisgera.github.io/pioupiou/ 🐤.