numpy.ma.notmasked_contiguous¶
-
numpy.ma.
notmasked_contiguous
(a, axis=None)[source]¶ Find contiguous unmasked data in a masked array along the given axis.
Parameters: - a : array_like
The input array.
- axis : int, optional
Axis along which to perform the operation. If None (default), applies to a flattened version of the array, and this is the same as
flatnotmasked_contiguous
.
Returns: - endpoints : list
A list of slices (start and end indexes) of unmasked indexes in the array.
If the input is 2d and axis is specified, the result is a list of lists.
See also
flatnotmasked_edges
,flatnotmasked_contiguous
,notmasked_edges
,clump_masked
,clump_unmasked
Notes
Only accepts 2-D arrays at most.
Examples
>>> a = np.arange(12).reshape((3, 4)) >>> mask = np.zeros_like(a) >>> mask[1:, :-1] = 1; mask[0, 1] = 1; mask[-1, 0] = 0 >>> ma = np.ma.array(a, mask=mask) >>> ma masked_array( data=[[0, --, 2, 3], [--, --, --, 7], [8, --, --, 11]], mask=[[False, True, False, False], [ True, True, True, False], [False, True, True, False]], fill_value=999999) >>> np.array(ma[~ma.mask]) array([ 0, 2, 3, 7, 8, 11])
>>> np.ma.notmasked_contiguous(ma) [slice(0, 1, None), slice(2, 4, None), slice(7, 9, None), slice(11, 12, None)]
>>> np.ma.notmasked_contiguous(ma, axis=0) [[slice(0, 1, None), slice(2, 3, None)], # column broken into two segments [], # fully masked column [slice(0, 1, None)], [slice(0, 3, None)]]
>>> np.ma.notmasked_contiguous(ma, axis=1) [[slice(0, 1, None), slice(2, 4, None)], # row broken into two segments [slice(3, 4, None)], [slice(0, 1, None), slice(3, 4, None)]]