diff options
Diffstat (limited to 'numpy/core/ma.py')
-rw-r--r-- | numpy/core/ma.py | 41 |
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 |