diff options
| author | Eric Wieser <wieser.eric@gmail.com> | 2017-07-18 00:20:25 +0100 |
|---|---|---|
| committer | Eric Wieser <wieser.eric@gmail.com> | 2017-08-13 11:41:43 -0700 |
| commit | e1ccca947a297deb90301acc14b1e13e8dd0b816 (patch) | |
| tree | 64a3dfcf122344087a4cae11ce62490fdb81e838 /numpy/ma/core.py | |
| parent | 64dd060447301bbececace3fe8a9436a0d2464a1 (diff) | |
| download | numpy-e1ccca947a297deb90301acc14b1e13e8dd0b816.tar.gz | |
BUG: Keep mask when calling methods on 0d arrays.
This also prevents `.squeeze()` from ever returning `masked`, which was incorrect
Fixes gh-9430.
Diffstat (limited to 'numpy/ma/core.py')
| -rw-r--r-- | numpy/ma/core.py | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/numpy/ma/core.py b/numpy/ma/core.py index 44096a25a..deddacfdc 100644 --- a/numpy/ma/core.py +++ b/numpy/ma/core.py @@ -2555,14 +2555,10 @@ def _arraymethod(funcname, onmask=True): result = result.view(type(self)) result._update_from(self) mask = self._mask - if result.ndim: - if not onmask: - result.__setmask__(mask) - elif mask is not nomask: - result.__setmask__(getattr(mask, funcname)(*args, **params)) - else: - if mask.ndim and (not mask.dtype.names and mask.all()): - return masked + if not onmask: + result.__setmask__(mask) + elif mask is not nomask: + result.__setmask__(getattr(mask, funcname)(*args, **params)) return result methdoc = getattr(ndarray, funcname, None) or getattr(np, funcname, None) if methdoc is not None: |
