diff options
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/ma/core.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/numpy/ma/core.py b/numpy/ma/core.py index 9655f2dc6..a72c6db2c 100644 --- a/numpy/ma/core.py +++ b/numpy/ma/core.py @@ -1464,10 +1464,11 @@ class _arraymethod(object): return result #.......................................................... -class FlatIter(object): +class MaskedIterator(object): "Define an interator." def __init__(self, ma): self.ma = ma + self.ma1d = ma.ravel() self.ma_iter = np.asarray(ma).flat if ma._mask is nomask: @@ -1478,10 +1479,12 @@ class FlatIter(object): def __iter__(self): return self + def __getitem__(self, indx): + return self.ma1d.__getitem__(indx) + ### This won't work is ravel makes a copy def __setitem__(self, index, value): - a = self.ma.ravel() - a[index] = value + self.ma1d[index] = value def next(self): "Returns the next element of the iterator." @@ -2168,7 +2171,7 @@ class MaskedArray(ndarray): """Return a flat iterator. """ - return FlatIter(self) + return MaskedIterator(self) # def _set_flat (self, value): """Set a flattened version of self to value. |