summaryrefslogtreecommitdiff
path: root/numpy/ma/core.py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2017-08-27 11:42:17 -0500
committerGitHub <noreply@github.com>2017-08-27 11:42:17 -0500
commited805307a3a30e9990dca0a7cac73618fc6c3f21 (patch)
treeed1ad8a672601c0dff5d6d069328ee06748df9db /numpy/ma/core.py
parent4e0d44c6e722b106df431b7d2e53cf4d82d32d6a (diff)
parente1ccca947a297deb90301acc14b1e13e8dd0b816 (diff)
downloadnumpy-ed805307a3a30e9990dca0a7cac73618fc6c3f21.tar.gz
Merge pull request #9432 from eric-wieser/masked-0d-methods
BUG: Fix loss of masks in masked 0d methods
Diffstat (limited to 'numpy/ma/core.py')
-rw-r--r--numpy/ma/core.py27
1 files changed, 10 insertions, 17 deletions
diff --git a/numpy/ma/core.py b/numpy/ma/core.py
index 8da68ff9c..8efe45eed 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:
@@ -4410,8 +4406,6 @@ class MaskedArray(ndarray):
return (~m).sum(axis=axis, dtype=np.intp, **kwargs)
- flatten = _arraymethod('flatten')
-
def ravel(self, order='C'):
"""
Returns a 1D version of self, as a view.
@@ -4457,8 +4451,6 @@ class MaskedArray(ndarray):
r._mask = nomask
return r
- repeat = _arraymethod('repeat')
-
def reshape(self, *s, **kwargs):
"""
@@ -5745,14 +5737,15 @@ class MaskedArray(ndarray):
return out[()]
# Array methods
- copy = _arraymethod('copy')
- diagonal = _arraymethod('diagonal')
- transpose = _arraymethod('transpose')
- T = property(fget=lambda self: self.transpose())
- swapaxes = _arraymethod('swapaxes')
clip = _arraymethod('clip', onmask=False)
copy = _arraymethod('copy')
+ diagonal = _arraymethod('diagonal')
+ flatten = _arraymethod('flatten')
+ repeat = _arraymethod('repeat')
squeeze = _arraymethod('squeeze')
+ swapaxes = _arraymethod('swapaxes')
+ T = property(fget=lambda self: self.transpose())
+ transpose = _arraymethod('transpose')
def tolist(self, fill_value=None):
"""