summaryrefslogtreecommitdiff
path: root/numpy/core/ma.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core/ma.py')
-rw-r--r--numpy/core/ma.py41
1 files changed, 5 insertions, 36 deletions
diff --git a/numpy/core/ma.py b/numpy/core/ma.py
index 224cc4753..74b209280 100644
--- a/numpy/core/ma.py
+++ b/numpy/core/ma.py
@@ -797,7 +797,10 @@ array(data = %(data)s,
m = self._mask
dout = self._data[i]
if m is nomask:
- return dout
+ if dout.size == 1:
+ return dout
+ else:
+ return masked_array(dout, fill_value=self._fill_value, copy=False)
mi = m[i]
if mi.size == 1:
if mi:
@@ -807,16 +810,6 @@ array(data = %(data)s,
else:
return masked_array(dout, mi, fill_value=self._fill_value)
- def __getslice__(self, i, j):
- "Get slice described by i, j"
- self.unshare_mask()
- m = self._mask
- dout = self._data[i:j]
- if m is nomask:
- return masked_array(dout, fill_value=self._fill_value)
- else:
- return masked_array(dout, mask = m[i:j], fill_value=self._fill_value)
-
# --------
# setitem and setslice notes
# note that if value is masked, it means to mask those locations.
@@ -826,7 +819,7 @@ array(data = %(data)s,
"Set item described by index. If value is masked, mask those locations."
d = self._data
if self is masked:
- raise MAError, 'Cannot alter the masked element.'
+ raise MAError, 'Cannot alter masked elements.'
if value is masked:
if self._mask is nomask:
self._mask = make_mask_none(d.shape)
@@ -850,30 +843,6 @@ array(data = %(data)s,
self.unshare_mask()
self._mask[index] = m
- def __setslice__(self, i, j, value):
- "Set slice i:j; if value is masked, mask those locations."
- d = self._data
- if self is masked:
- raise MAError, "Cannot alter the 'masked' object."
- if value is masked:
- if self._mask is nomask:
- self._mask = make_mask_none(d.shape)
- self._shared_mask = False
- self._mask[i:j] = True
- return
- m = getmask(value)
- value = filled(value).astype(d.dtype)
- d[i:j] = value
- if m is nomask:
- if self._mask is not nomask:
- self.unshare_mask()
- self._mask[i:j] = False
- else:
- if self._mask is nomask:
- self._mask = make_mask_none(self._data.shape)
- self._shared_mask = False
- self._mask[i:j] = m
-
def __nonzero__(self):
"""returns true if any element is non-zero or masked