more numpy version

    TODO: move to vtool

    Args:
        unflat_arrs (list):  list of ndarrays

    Returns:
        tuple: (flat_list, cumlen_list)

    CommandLine:
        python -m utool.util_list --test-invertible_flatten2_numpy

    Example:
        >>> # ENABLE_DOCTET
        >>> from utool.util_list import *  # NOQA
        >>> unflat_arrs = [np.array([1, 2, 1]), np.array([5, 9]), np.array([4])]
        >>> (flat_list, cumlen_list) = invertible_flatten2_numpy(unflat_arrs)
        >>> result = str((flat_list, cumlen_list))
        >>> print(result)
        (array([1, 2, 1, 5, 9, 4]), array([3, 5, 6]))

def invertible_flatten2_numpy(unflat_arrs, axis=0):
    """ more numpy version

    TODO: move to vtool

    Args:
        unflat_arrs (list):  list of ndarrays

    Returns:
        tuple: (flat_list, cumlen_list)

    CommandLine:
        python -m utool.util_list --test-invertible_flatten2_numpy

    Example:
        >>> # ENABLE_DOCTET
        >>> from utool.util_list import *  # NOQA
        >>> unflat_arrs = [np.array([1, 2, 1]), np.array([5, 9]), np.array([4])]
        >>> (flat_list, cumlen_list) = invertible_flatten2_numpy(unflat_arrs)
        >>> result = str((flat_list, cumlen_list))
        >>> print(result)
        (array([1, 2, 1, 5, 9, 4]), array([3, 5, 6]))
    """
    cumlen_list = np.cumsum([arr.shape[axis] for arr in unflat_arrs])
    flat_list = np.concatenate(unflat_arrs, axis=axis)
    return flat_list, cumlen_list