NumPy mean() vs average()

Manav Narula 18 juillet 2021
NumPy mean() vs average()

La moyenne est la valeur centrale d’un ensemble d’observations. Il peut y avoir de nombreuses formes de moyenne, comme la moyenne géométrique, harmonique, arithmétique. Dans le monde des statistiques, la moyenne arithmétique et la moyenne sont utilisées de manière interchangeable. Ils sont tous deux calculés en utilisant la même formule, c’est-à-dire la somme des observations totales divisée par le nombre total d’observations.

En Python, nous avons deux fonctions qui peuvent calculer la moyenne arithmétique ou la moyenne. Ce sont les fonctions numpy.mean() et numpy.average() disponibles dans le module NumPy.

Ces deux fonctions peuvent être utilisées pour calculer la moyenne arithmétique ou la moyenne comme indiqué ci-dessous:

import numpy as np

arr = np.array([12, 15, 18, 19, 20])

print("Average Function: ", np.average(arr))
print("Type returned: ", type(np.average(arr)))

print("Mean Function: ", np.mean(arr))
print("Type returned: ", type(np.mean(arr)))

Production:

Average Function:  16.8
Type returned:  <class 'numpy.float64'>
Mean Function:  16.8
Type returned:  <class 'numpy.float64'>

Notez qu’ils renvoient même tous les deux la sortie finale dans le même type, et il peut sembler que ces deux fonctions sont équivalentes.

Cependant, il existe quelques différences entre eux. La fonction numpy.average() permet également de calculer la moyenne pondérée d’un tableau, ce qui n’est pas possible dans la fonction numpy.mean(). Pour cela, nous transmettons simplement les poids en tant que paramètre à la fonction comme indiqué ci-dessous:

import numpy as np

arr = np.array([12, 15, 18, 19, 20])
arr_w = np.array([0.1, 0.1, 0.1, 0.2, 0.5])

print("Weighted Average Function: ", np.average(arr, weights=arr_w))

Production:

Weighted Average Function:  18.3

Une autre différence notable est que la fonction np.mean() peut avoir de nombreux autres paramètres comme dtype, out, where, keepdims, etc. qui ne sont pas disponibles dans le np.average() fonction.

Ces paramètres supplémentaires peuvent être bénéfiques; par exemple, nous pourrions avoir une situation où le type d’objet dont la moyenne doit être calculée est inconnu ou ambigu. Dans de tels cas, nous pouvons spécifier le type en utilisant le paramètre dtype. Le paramètre out peut spécifier si nous voulons stocker le résultat dans un autre tableau. On peut également définir l’axe selon lequel on veut calculer la moyenne à l’aide du paramètre axis. Le code suivant montre l’utilisation de certains paramètres dans la fonction np.mean().

import numpy as np

arr = np.array([[12, 15, 18, 19, 20], [10, 16, 7, 18, 20], [20, 12, 24, 11, 14]])

x = np.arange(3)
print("Mean Function: ", np.mean(arr, dtype=int, axis=1, out=x))
print("Output array: ", x)

Production:

Mean Function:  [16 14 16]
Output array:  [16 14 16]
Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn