To make biggus itself, plus code that uses biggus, consistent, simple, etc. I chose to make all indexing of an Array return another Array. Hence, biggus uses 0-D arrays. There is no biggus ArrayScalar class. :shudder:

Similarly, I chose to make the result of Array.ndarray() consistent with the Array itself. So it returns a 0-D ndarray when the Array is 0-D.

I'm really not inclined to change either of those behaviours. The expected usage of biggus is not the same as the usage of numpy. Typically one uses biggus to operate on a virtual array and produce one or more chunks as ndarrays. Fiddling around at the level of individual array elements is done with the ndarray.