Good catch. We be using `np.asarray` or set `copy=False` with [astype](http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.astype.html):

> By default, astype always returns a newly allocated array. If this is set to false, and the dtype, order, and subok requirements are satisfied, the input array is returned instead of a copy.

I don't know why I thought astype wouldn't make a copy unless necessary.