summaryrefslogtreecommitdiff
path: root/numpy/ma/core.py
diff options
context:
space:
mode:
authorEric Wieser <wieser.eric@gmail.com>2017-07-18 00:20:25 +0100
committerEric Wieser <wieser.eric@gmail.com>2017-08-13 11:41:43 -0700
commite1ccca947a297deb90301acc14b1e13e8dd0b816 (patch)
tree64a3dfcf122344087a4cae11ce62490fdb81e838 /numpy/ma/core.py
parent64dd060447301bbececace3fe8a9436a0d2464a1 (diff)
downloadnumpy-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.py12
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: