2. I am not sure cumprod and cumsum should fill masked elements with 1 and 0. I would think the result should be masked if any prior element along the axis being accumulated is masked. To ignore masked elements, filled can be called explicitly before cum[prod|sum]. One of the problems with filling by default is that 1 or 0 are not appropriate values for object arrays (for example, "" is an appropriate fill value for cumsum of an array of strings).