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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *