def zero_cols(full_mat, non_zero=False):
    """
    Returns the list of indices of columns that are zero or non_zero
    depending on the parameter non_zero

    :param mat: The matrix to search over

    :param non_zero: If False, returns the indices of columns that are zero, otherwise
        returns indices of columns that a not zero.

    :return: A list of indices of columns of the type determined by the parameter non_zero.
    """
    size = len(full_mat)
    rval = []
    rval_other = []
    for col in range(size):
        is_zero = True
        for row in range(size):
            if full_mat[row, col] != 0:
                is_zero = False
                break
        if is_zero:
            rval.append(col)
        else:
            rval_other.append(col)
    if non_zero:
        return rval_other
    else:
        return rval
