I guess I don't understand how memoryviews work... Is it just giving me a pointer to the `np.array` `.data` field? If so, I can't really use them in this context, since I need the `.shape` from the array later. In terms of speed, Andy's code already grabs the `.data` pointer later in the function and works exclusively on the pointer arithmetic in the main loop.