NumPy mean() vs average()

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

La media è il valore centrale di una serie di osservazioni. Ci possono essere molte forme di media, come la media geometrica, armonica, aritmetica. Nel mondo della statistica, sia la media che la media aritmetica vengono utilizzate in modo intercambiabile. Entrambi vengono calcolati utilizzando la stessa formula, ovvero la somma delle osservazioni totali divisa per il numero totale di osservazioni.

In Python, abbiamo due funzioni che possono calcolare la media o la media aritmetica. Queste sono le funzioni numpy.mean() e numpy.average() disponibili nel modulo NumPy.

Entrambe queste funzioni possono essere utilizzate per calcolare la media aritmetica o la media come mostrato di seguito:

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

Produzione:

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

Nota che entrambi restituiscono anche l’output finale nello stesso tipo e può sembrare che entrambe queste funzioni siano equivalenti.

Tuttavia, ci sono alcune differenze tra di loro. La funzione numpy.average() può anche calcolare la media ponderata di un array, cosa che non è possibile nella funzione numpy.mean(). Per questo passiamo semplicemente i pesi come parametro alla funzione come mostrato di seguito:

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

Produzione:

Weighted Average Function:  18.3

Un’altra differenza notevole è che la funzione np.mean() può avere molti altri parametri come dtype, out, where, keepdims e altri che non sono disponibili in np.average() funzione.

Tali parametri aggiuntivi possono essere utili; per esempio, potremmo avere una situazione in cui il tipo di oggetto di cui calcolare la media è sconosciuto o ambiguo. In questi casi, possiamo specificare il tipo usando il parametro dtype. Il parametro out può specificare se vogliamo memorizzare il risultato in un array alternativo. Possiamo anche impostare l’asse lungo il quale vogliamo calcolare la media utilizzando il parametro axis. Il codice seguente mostra l’uso di alcuni parametri nella funzione 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)

Produzione:

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