Returns a generator of slice objects.
    
    Parameters
    ----------
    N : int
        The size of one of the dimensions of a two-dimensional array. 
    
    n : int
        The number of arrays of shape ('N', 'get_chunk_size(N, n)') that fit into
        memory.
    
    Returns
    -------
    Slice objects of the type 'slice(start, stop)' are generated, representing
    the set of indices specified by 'range(start, stop)'.

def chunk_generator(N, n):
    """Returns a generator of slice objects.
    
    Parameters
    ----------
    N : int
        The size of one of the dimensions of a two-dimensional array. 
    
    n : int
        The number of arrays of shape ('N', 'get_chunk_size(N, n)') that fit into
        memory.
    
    Returns
    -------
    Slice objects of the type 'slice(start, stop)' are generated, representing
    the set of indices specified by 'range(start, stop)'. 
    """

    chunk_size = get_chunk_size(N, n)
    
    for start in range(0, N, chunk_size):
        yield slice(start, min(start + chunk_size, N))