OK, this line has pretty much everything the bothers me ;) Note the here `_data` is viewed as `_baseclass`, which may, but I'm not sure, have a different shape than `self._data` in the matrix case or some other odd case. Same thing above, where `ndarray.view(self, ndarray)` may be different from `self.data`, the latter may actually be a matrix type. I'd also like to know what the difference between `self.data` and `self._data` is, likewise `self.mask` and `self._mask`.

Dealing with masked arrays is like trying to sneak up on a tiger while creeping across eggshells. Disaster threatens at every move.