For future reference, here is an example of using a binary mask to ignore some values in the calculation of the posterior density:
import numpy as np
import pymc3 as pm
n = 30
p = 3
fraction_kept = 0.75
beta_true = np.random.randn(p)
X = np.random.randn(n,p)
y = np.dot(X,beta_true) + np.random.randn(n)
mask = np.random.binomial(n,fraction_missing,y.shape)
with pm.Model() as model:
beta = pm.Normal('beta',shape=p)
err_sd = pm.HalfCauchy('err_sd',beta=1)
y_hat = pm.math.dot(X,beta)
likelihood = pm.Potential('likelihood',pm.Normal.dist(mu=y_hat, sd=err_sd).logp(y)*mask)
trace = pm.sample()