[Numpy-svn] r8612 - trunk/numpy/ma
numpy-svn at scipy.org
numpy-svn at scipy.org
Mon Aug 9 15:27:14 EDT 2010
Author: pierregm
Date: 2010-08-09 14:27:14 -0500 (Mon, 09 Aug 2010)
New Revision: 8612
Modified:
trunk/numpy/ma/extras.py
Log:
* fixed numpy.ma.extras.flatnotmasked_contiguous (bug #1576)
Modified: trunk/numpy/ma/extras.py
===================================================================
--- trunk/numpy/ma/extras.py 2010-08-08 18:52:19 UTC (rev 8611)
+++ trunk/numpy/ma/extras.py 2010-08-09 19:27:14 UTC (rev 8612)
@@ -1644,16 +1644,14 @@
"""
m = getmask(a)
if m is nomask:
- return (a.size, [0, -1])
- unmasked = np.flatnonzero(~m)
- if len(unmasked) == 0:
- return None
+ return slice(0, a.size, None)
+ i = 0
result = []
- for (k, group) in itertools.groupby(enumerate(unmasked), lambda (i, x):i - x):
- tmp = np.array([g[1] for g in group], int)
-# result.append((tmp.size, tuple(tmp[[0,-1]])))
- result.append(slice(tmp[0], tmp[-1]))
- result.sort()
+ for (k, g) in itertools.groupby(m.ravel()):
+ n = len(list(g))
+ if not k:
+ result.append(slice(i, i + n))
+ i += n
return result
def notmasked_contiguous(a, axis=None):
@@ -1711,7 +1709,7 @@
#
for i in range(a.shape[other]):
idx[other] = i
- result.append(flatnotmasked_contiguous(a[idx]))
+ result.append(flatnotmasked_contiguous(a[idx]) or None)
return result
More information about the Numpy-svn
mailing list