Return the product of the array elements over the given axis. Masked elements are set to 1 internally for computation. Refer to `numpy.prod` for full documentation. Notes ----- Arithmetic is modular when using integer types, and no error is raised
(self, axis=None, dtype=None, out=None, keepdims=np._NoValue)
| 5301 | return result |
| 5302 | |
| 5303 | def prod(self, axis=None, dtype=None, out=None, keepdims=np._NoValue): |
| 5304 | """ |
| 5305 | Return the product of the array elements over the given axis. |
| 5306 | |
| 5307 | Masked elements are set to 1 internally for computation. |
| 5308 | |
| 5309 | Refer to `numpy.prod` for full documentation. |
| 5310 | |
| 5311 | Notes |
| 5312 | ----- |
| 5313 | Arithmetic is modular when using integer types, and no error is raised |
| 5314 | on overflow. |
| 5315 | |
| 5316 | See Also |
| 5317 | -------- |
| 5318 | numpy.ndarray.prod : corresponding function for ndarrays |
| 5319 | numpy.prod : equivalent function |
| 5320 | """ |
| 5321 | kwargs = {} if keepdims is np._NoValue else {'keepdims': keepdims} |
| 5322 | |
| 5323 | _mask = self._mask |
| 5324 | newmask = _check_mask_axis(_mask, axis, **kwargs) |
| 5325 | # No explicit output |
| 5326 | if out is None: |
| 5327 | result = self.filled(1).prod(axis, dtype=dtype, **kwargs) |
| 5328 | rndim = getattr(result, 'ndim', 0) |
| 5329 | if rndim: |
| 5330 | result = result.view(type(self)) |
| 5331 | result.__setmask__(newmask) |
| 5332 | elif newmask: |
| 5333 | result = masked |
| 5334 | return result |
| 5335 | # Explicit output |
| 5336 | result = self.filled(1).prod(axis, dtype=dtype, out=out, **kwargs) |
| 5337 | if isinstance(out, MaskedArray): |
| 5338 | outmask = getmask(out) |
| 5339 | if outmask is nomask: |
| 5340 | outmask = out._mask = make_mask_none(out.shape) |
| 5341 | outmask.flat = newmask |
| 5342 | return out |
| 5343 | product = prod |
| 5344 | |
| 5345 | def cumprod(self, axis=None, dtype=None, out=None): |