emcee 0.3.0

Implementation of Python's emcee affine-invariant mcmc ensemble sampler
Documentation
#!/usr/bin/env python


import emcee
import numpy as np

np.random.seed(42)

x = np.sort(np.random.uniform(0, 10, 20))
y = (2 * x + 5) + np.random.randn(x.size)

def lnprior(params):
    return 0.0

def lnlike(params):
    model = params[0] * x + params[1]
    residuals = y - model
    return -np.sum(residuals ** 2)

def lnprob(params):
    lnp = lnprior(params)
    if np.isfinite(lnp):
        return lnp + lnlike(params)
    return -np.inf


if __name__ == '__main__':
    print('x: {}'.format(x))
    print('y: {}'.format(y))
    p0 = np.array([0.0, 0.0])
    nwalkers = 4
    pos = np.array([p0 + np.random.randn() * 1E-5 for _ in range(nwalkers)])

    print('raw lnprob: {}'.format(lnprob(p0)))

    print('pos: {}'.format(pos))

    sampler = emcee.EnsembleSampler(nwalkers, p0.size, lnprob)
    print(sampler._get_lnprob(pos))