Thoughts on basing this on a more generic Array type rather than the np.ndarray?
I can imagine other nd-array libraries (XArray, Tensorflow, Dask.array) wanting to reuse this work.