Also, I think that it would be better if we returned an array, with dtype=object, instead of a list. A lot of code expects to find arrays, for instance testing the shape of the object, or applying fancy indexing. Besides, having the return type of a method vary can be a good recipe for later bugs.