It depends what you're trying to illustrate with this code.  If it's simply how a Rejection Sampler works, I would remove anything beyond the basics to keep the focus sharp.  If you *do* want to dig in to multidimensional samples in the accompanying text, then leave it in with an example.

You might still be able to simplify the logic in this method (even using multi-dimensional samples) using built-in arrays instead of numpy arrays - that way the extra numpy parts wouldn't be a distraction from the underlying ideas.