def _posify_mask_subindexer(index):
    """Convert masked indices in a flat array to the nearest unmasked index.

    Parameters
    ----------
    index : np.ndarray
        One dimensional ndarray with dtype=int.

    Returns
    -------
    np.ndarray
        One dimensional ndarray with all values equal to -1 replaced by an
        adjacent non-masked element.
    """
    masked = index == -1
    unmasked_locs = np.flatnonzero(~masked)
    if not unmasked_locs.size:
        # indexing unmasked_locs is invalid
        return np.zeros_like(index)
    masked_locs = np.flatnonzero(masked)
    prev_value = np.maximum(0, np.searchsorted(unmasked_locs, masked_locs) - 1)
    new_index = index.copy()
    new_index[masked_locs] = index[unmasked_locs[prev_value]]
    return new_index
def _posify_mask_subindexer ( index ) : masked = index == - 1 unmasked_locs = np . flatnonzero ( ~ masked ) if not unmasked_locs . size : return np . zeros_like ( index ) masked_locs = np . flatnonzero ( masked ) prev_value = np . maximum ( 0 , np . searchsorted ( unmasked_locs , masked_locs ) - 1 ) new_index = index . copy ( ) new_index [ masked_locs ] = index [ unmasked_locs [ prev_value ] ] return new_index
Convert masked indices in a flat array to the nearest unmasked index.

    Parameters
    ----------
    index : np.ndarray
        One dimensional ndarray with dtype=int.

    Returns
    -------
    np.ndarray
        One dimensional ndarray with all values equal to -1 replaced by an
        adjacent non-masked element.