# Fonction pour diviser les données en ensembles d'entraînement et de test :
# Function to split the data into training and testing sets:
'''
*Arguments:
-data et labels, deux tableaux de même taille dans la première dimension.
-split, un nombre flottant compris entre 0 et 1, qui détermine le facteur de répartition de l'ensemble d'entraînement par rapport à l'ensemble de test.
Arguments:
-data and labels, two arrays of the same size in the first dimension.
-split, a floating-point number between 0 and 1, determining the split ratio of the training set compared to the test set.
*Renvoie :
-data_train: les données d'entraînement.
-labels_train: les étiquettes correspondantes.
-data_test: les données de test.
-labels_test: les étiquettes correspondantes.
Returns:
-data_train: the training data.
-labels_train: the corresponding labels.
-data_test: the testing data.
-labels_test: the corresponding labels.
'''
defsplit_dataset(data,labels,split):
# Vérifie que le ratio de division est valide
# Check that the split ratio is valid
assert0<split<1
n=len(data)
# Mélange les indices des données
# Shuffle the data indices
indices=np.random.permutation(n)
split_index=int(split*n)
# Sépare les indices pour l'ensemble d'entraînement et de test
# Separate the indices for the training and test sets
train_indices=indices[:split_index]
test_indices=indices[split_index:]
# Sépare les données et étiquettes en ensembles d'entraînement et de test
# Split the data and labels into training and test sets