import pymc as pm obs = np.array( [0,0,1] ) uni = pm.Uniform("prop", 0, 1) fake_obs = pm.Bernoulli("fake_obs", uni, size=3 ) @pm.deterministic def accept(uni = uni, fake_obs = fake_obs, obs = obs): if np.array_equal( fake_obs, obs ): return uni else: return None mcmc = pm.MCMC([uni, fake_obs, accept] ) mcmc.sample(10000) samples = mcmc.trace('accept')[:] hist( samples[samples > 0] ) samples[:1000]