Comment centrer les données en Python : avec des exemples
Centrer un ensemble de données signifie soustraire la valeur moyenne de chaque observation individuelle dans l’ensemble de données.
Une fois que vous avez centré un ensemble de données, la valeur moyenne de l’ensemble de données devient nulle.
Les exemples suivants montrent comment centrer les données en Python.
Exemple 1 : centrer les valeurs d’un tableau NumPy
Supposons que nous ayons le tableau NumPy suivant :
import numpy as np #create NumPy array data = np.array([4, 6, 9, 13, 14, 17, 18, 19, 19, 21]) #display mean of array print(data.mean()) 14.0
Nous pouvons définir une fonction pour soustraire la valeur moyenne du tableau de chaque observation individuelle :
#create function to center data
center_function = lambda x: x - x.mean()
#apply function to original NumPy array
data_centered = center_function(data)
#view updated Array
print(data_centered)
array([-10., -8., -5., -1., 0., 3., 4., 5., 5., 7.])
Les valeurs résultantes sont les valeurs centrées de l’ensemble de données.
Puisque la moyenne du tableau d’origine était de 14, cette fonction a simplement soustrait 14 à chaque valeur individuelle du tableau d’origine.
Par exemple:
- 1ère valeur du tableau centré = 4 – 14 = -10
- 2ème valeur du tableau centré = 6 – 14 = -8
- 3ème valeur dans le tableau centré = 9 – 14 = -5
Et ainsi de suite.
On peut également vérifier que la moyenne du tableau centré est nulle :
#display mean of centered array print(data_centered.mean()) 0.0
Exemple 2 : Centrer les colonnes d’un DataFrame Pandas
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'x': [1, 4, 5, 6, 6, 8, 9], 'y': [7, 7, 8, 8, 8, 9, 12], 'z': [3, 3, 4, 4, 6, 7, 7]}) #view DataFrame print(df) x y z 0 1 7 3 1 4 7 3 2 5 8 4 3 6 8 4 4 6 8 6 5 8 9 7 6 9 12 7
Nous pouvons utiliser la fonction pandas apply() pour centrer les valeurs de chaque colonne dans le DataFrame :
#center the values in each column of the DataFrame df_centered = df.apply(lambda x: x-x.mean()) #view centered DataFrame print(df_centered) x y z 0 -4.571429 -1.428571 -1.857143 1 -1.571429 -1.428571 -1.857143 2 -0.571429 -0.428571 -0.857143 3 0.428571 -0.428571 -0.857143 4 0.428571 -0.428571 1.142857 5 2.428571 0.571429 2.142857 6 3.428571 3.571429 2.142857
On peut alors vérifier que la valeur moyenne de chaque colonne est nulle :
#display mean of each column in the DataFrame df_centered.mean() x 2.537653e-16 y -2.537653e-16 z 3.806479e-16 dtype: float64
Les moyennes des colonnes sont affichées en notation scientifique, mais chaque valeur est essentiellement égale à zéro.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes en Python :
Comment calculer une moyenne tronquée en Python
Comment calculer l’erreur quadratique moyenne (MSE) en Python
Comment calculer la moyenne des colonnes sélectionnées dans Pandas