NumPy mean() vs average()

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

Der Mittelwert ist der zentrale Wert einer Reihe von Beobachtungen. Es kann viele Formen von Mittelwerten geben, wie geometrische, harmonische, arithmetische Mittelwerte. In der Welt der Statistik werden sowohl das arithmetische Mittel als auch der Durchschnitt synonym verwendet. Sie werden beide unter Verwendung derselben Formel berechnet, d. H. Summe der Gesamtbeobachtungen geteilt durch die Gesamtzahl der Beobachtungen.

In Python haben wir zwei Funktionen, mit denen der arithmetische Mittelwert oder Durchschnitt berechnet werden kann. Dies sind die Funktionen numpy.mean() und numpy.average(), die im Modul NumPy verfügbar sind.

Beide Funktionen können verwendet werden, um das arithmetische Mittel oder den Mittelwert wie unten gezeigt zu berechnen:

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)))

Ausgabe:

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

Beachten Sie, dass beide sogar die endgültige Ausgabe im selben Typ zurückgeben, und es scheint, dass beide Funktionen gleichwertig sind.

Es gibt jedoch einige Unterschiede zwischen ihnen. Die Funktion numpy.average() kann auch den gewichteten Durchschnitt eines Arrays berechnen, was in der Funktion numpy.mean() nicht möglich ist. Dazu übergeben wir einfach die Gewichte als Parameter an die unten gezeigte Funktion:

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))

Ausgabe:

Weighted Average Function:  18.3

Ein weiterer bemerkenswerter Unterschied besteht darin, dass die Funktion np.mean() viele andere Parameter wie dtype, out, where, keepdims und mehr haben kann, die in der Funktion np.average() nicht verfügbar sind.

Solche zusätzlichen Parameter können vorteilhaft sein; Beispielsweise kann es vorkommen, dass der Objekttyp, dessen Durchschnitt berechnet werden soll, unbekannt oder nicht eindeutig ist. In solchen Fällen können wir den Typ mit dem Parameter dtype angeben. Der Parameter out kann angeben, ob das Ergebnis in einem alternativen Array gespeichert werden soll. Mit dem Parameter axis können wir auch die Achse einstellen, entlang der der Mittelwert berechnet werden soll. Der folgende Code zeigt die Verwendung einiger Parameter in der Funktion 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)

Ausgabe:

Mean Function:  [16 14 16]
Output array:  [16 14 16]
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