numpy.ma.notmasked_contiguous — NumPy v1.15 Manual (original) (raw)
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. |
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)]]