You probably know this, but the two methods actually differ in terms of their implications: 

http://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html
"If you want an error to be raise if the data is copied, you should assign the new shape to the shape attribute of the array."

Numpy actually checks to make sure that the new shape attribute will work in terms of returning a modified view instead of making a copy. That's why I used it here -- if we implement a change in the future in the reading functions that causes a copy to be necessary, it will slow down our code, and we should re-code the change if possible. Thus I see the error as a check on future changes. I figured if we get to that point and it's not possible to do it without a copy, we could then move to `.reshape()`. Does that make sense?