def gen_splits(number_of_splits, data, labels):
    """
    Generate data splits on given data and labesl.

    :param number_of_splits: number of data splits
    :type number_of_splits: int
    :param data: the trianing data
    :type data: numpy.array
    :param labels: the training labels 
    :type labels: numpy.array
    :return: data and label splits
    """
    data_splits = [] 
    label_splits = []

    number_of_examples = data.shape[0] // number_of_splits
    start = 0 
    end = number_of_examples  
    for i in range(0, number_of_splits):
        data_splits.append(data[start:end])
        label_splits.append(labels[start:end])
        start = end 
        end += number_of_examples

    return data_splits, label_splits