summaryrefslogtreecommitdiff
path: root/numpy/ma/extras.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/ma/extras.py')
-rw-r--r--numpy/ma/extras.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/numpy/ma/extras.py b/numpy/ma/extras.py
index 781b25449..c5c33a2ad 100644
--- a/numpy/ma/extras.py
+++ b/numpy/ma/extras.py
@@ -626,10 +626,14 @@ def median(a, axis=None, out=None, overwrite_input=False, keepdims=False):
fill_value = 1e+20)
"""
- if not hasattr(a, 'mask') or np.count_nonzero(a.mask) == 0:
- return masked_array(np.median(getdata(a, subok=True), axis=axis,
- out=out, overwrite_input=overwrite_input,
- keepdims=keepdims), copy=False)
+ if not hasattr(a, 'mask'):
+ m = np.median(getdata(a, subok=True), axis=axis,
+ out=out, overwrite_input=overwrite_input,
+ keepdims=keepdims)
+ if isinstance(m, np.ndarray) and 2 <= m.ndim:
+ return masked_array(m, copy=False)
+ else:
+ return m
r, k = _ureduce(a, func=_median, axis=axis, out=out,
overwrite_input=overwrite_input)