[Numpy-svn] r8613 - in trunk/numpy/ma: . tests
numpy-svn at scipy.org
numpy-svn at scipy.org
Mon Aug 9 15:57:33 EDT 2010
Author: pierregm
Date: 2010-08-09 14:57:33 -0500 (Mon, 09 Aug 2010)
New Revision: 8613
Modified:
trunk/numpy/ma/extras.py
trunk/numpy/ma/tests/test_extras.py
Log:
ma.extras
* fixed the documentation of (flat)notmasked_xxx
Modified: trunk/numpy/ma/extras.py
===================================================================
--- trunk/numpy/ma/extras.py 2010-08-09 19:27:14 UTC (rev 8612)
+++ trunk/numpy/ma/extras.py 2010-08-09 19:57:33 UTC (rev 8613)
@@ -1522,7 +1522,8 @@
See Also
--------
- flatnotmasked_contiguous, notmasked_contiguous, notmasked_edges
+ flatnotmasked_contiguous, notmasked_contiguous, notmasked_edges,
+ clump_masked, clump_unmasked
Notes
-----
@@ -1530,24 +1531,26 @@
Examples
--------
- >>> a = np.arange(10)
+ >>> a = np.ma.arange(10)
+ >>> flatnotmasked_edges(a)
+ [0,-1]
+
>>> mask = (a < 3) | (a > 8) | (a == 5)
-
- >>> ma = np.ma.array(a, mask=m)
- >>> np.array(ma[~ma.mask])
+ >>> a[mask] = np.ma.masked
+ >>> np.array(a[~a.mask])
array([3, 4, 6, 7, 8])
- >>> flatnotmasked_edges(ma)
+ >>> flatnotmasked_edges(a)
array([3, 8])
- >>> ma = np.ma.array(a, mask=np.ones_like(a))
+ >>> a[:] = np.ma.masked
>>> print flatnotmasked_edges(ma)
None
"""
m = getmask(a)
if m is nomask or not np.any(m):
- return [0, -1]
+ return np.array([0, a.size - 1])
unmasked = np.flatnonzero(~m)
if len(unmasked) > 0:
return unmasked[[0, -1]]
@@ -1580,7 +1583,8 @@
See Also
--------
- flatnotmasked_contiguous, flatnotmasked_edges, notmasked_contiguous
+ flatnotmasked_contiguous, flatnotmasked_edges, notmasked_contiguous,
+ clump_masked, clump_unmasked
Examples
--------
@@ -1588,8 +1592,8 @@
>>> m = np.zeros_like(a)
>>> m[1:, 1:] = 1
- >>> ma = np.ma.array(a, mask=m)
- >>> np.array(ma[~ma.mask])
+ >>> am = np.ma.array(a, mask=m)
+ >>> np.array(am[~am.mask])
array([0, 1, 2, 3, 6])
>>> np.ma.extras.notmasked_edges(ma)
@@ -1621,7 +1625,8 @@
See Also
--------
- flatnotmasked_edges, notmasked_contiguous, notmasked_edges
+ flatnotmasked_edges, notmasked_contiguous, notmasked_edges,
+ clump_masked, clump_unmasked
Notes
-----
@@ -1629,16 +1634,19 @@
Examples
--------
- >>> a = np.arange(10)
+ >>> a = np.ma.arange(10)
+ >>> np.ma.extras.flatnotmasked_contiguous(a)
+ slice(0, 10, None)
+
>>> mask = (a < 3) | (a > 8) | (a == 5)
- >>> ma = np.ma.array(a, mask=mask)
- >>> np.array(ma[~ma.mask])
+ >>> a[mask] = np.ma.masked
+ >>> np.array(a[~a.mask])
array([3, 4, 6, 7, 8])
- >>> np.ma.extras.flatnotmasked_contiguous(ma)
- [slice(3, 4, None), slice(6, 8, None)]
- >>> ma = np.ma.array(a, mask=np.ones_like(a))
- >>> print np.ma.extras.flatnotmasked_edges(ma)
+ >>> np.ma.extras.flatnotmasked_contiguous(a)
+ [slice(3, 5, None), slice(6, 9, None)]
+ >>> a[:] = np.ma.masked
+ >>> print np.ma.extras.flatnotmasked_edges(a)
None
"""
@@ -1652,7 +1660,7 @@
if not k:
result.append(slice(i, i + n))
i += n
- return result
+ return result or None
def notmasked_contiguous(a, axis=None):
"""
@@ -1674,7 +1682,8 @@
See Also
--------
- flatnotmasked_edges, flatnotmasked_contiguous, notmasked_edges
+ flatnotmasked_edges, flatnotmasked_contiguous, notmasked_edges,
+ clump_masked, clump_unmasked
Notes
-----
@@ -1691,7 +1700,7 @@
array([0, 1, 2, 3, 6])
>>> np.ma.extras.notmasked_contiguous(ma)
- [slice(0, 3, None), slice(6, 6, None)]
+ [slice(0, 4, None), slice(6, 7, None)]
"""
a = asarray(a)
@@ -1792,7 +1801,7 @@
>>> a = np.ma.masked_array(np.arange(10))
>>> a[[0, 1, 2, 6, 8, 9]] = np.ma.masked
>>> np.ma.extras.clump_masked(a)
- [slice(0, 3, None), slice(6, 7, None), slice(8, None, None)]
+ [slice(0, 3, None), slice(6, 7, None), slice(8, 10, None)]
"""
mask = ma.getmask(a)
Modified: trunk/numpy/ma/tests/test_extras.py
===================================================================
--- trunk/numpy/ma/tests/test_extras.py 2010-08-09 19:27:14 UTC (rev 8612)
+++ trunk/numpy/ma/tests/test_extras.py 2010-08-09 19:57:33 UTC (rev 8613)
@@ -88,6 +88,20 @@
control = [slice(3, 6), slice(7, 8), ]
assert_equal(test, control)
+ def test_flatnotmasked_contiguous(self):
+ "Test flatnotmasked_contiguous"
+ a = arange(10)
+ # No mask
+ test = flatnotmasked_contiguous(a)
+ assert_equal(test, slice(0, a.size))
+ # Some mask
+ a[(a < 3) | (a > 8) | (a == 5)] = masked
+ test = flatnotmasked_contiguous(a)
+ assert_equal(test, [slice(3, 5), slice(6, 9)])
+ #
+ a[:] = masked
+ test = flatnotmasked_contiguous(a)
+ assert_equal(test, [])
class TestAverage(TestCase):
@@ -261,9 +275,9 @@
[1, 1, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 0], ])
tmp = notmasked_contiguous(a, None)
- assert_equal(tmp[-1], slice(23, 23, None))
- assert_equal(tmp[-2], slice(16, 21, None))
- assert_equal(tmp[-3], slice(0, 3, None))
+ assert_equal(tmp[-1], slice(23, 24, None))
+ assert_equal(tmp[-2], slice(16, 22, None))
+ assert_equal(tmp[-3], slice(0, 4, None))
#
tmp = notmasked_contiguous(a, 0)
self.assertTrue(len(tmp[-1]) == 1)
@@ -272,10 +286,10 @@
self.assertTrue(len(tmp[0]) == 2)
#
tmp = notmasked_contiguous(a, 1)
- assert_equal(tmp[0][-1], slice(0, 3, None))
+ assert_equal(tmp[0][-1], slice(0, 4, None))
self.assertTrue(tmp[1] is None)
- assert_equal(tmp[2][-1], slice(7, 7, None))
- assert_equal(tmp[2][-2], slice(0, 5, None))
+ assert_equal(tmp[2][-1], slice(7, 8, None))
+ assert_equal(tmp[2][-2], slice(0, 6, None))
More information about the Numpy-svn
mailing list