NumPy mean() vs average()

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

La media es el valor central de un conjunto de observaciones. Puede haber muchas formas de media, como media geométrica, armónica o aritmética. En el mundo de la estadística, tanto la media aritmética como la media se utilizan indistintamente. Ambos se calculan utilizando la misma fórmula, es decir, la suma del total de observaciones dividida por el número total de observaciones.

En Python, tenemos dos funciones que pueden calcular la media aritmética o el promedio. Estas son las funciones numpy.mean() y numpy.average() disponibles en el módulo NumPy.

Ambas funciones se pueden usar para calcular la media aritmética o el promedio como se muestra a continuación:

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

Producción :

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

Tenga en cuenta que ambos incluso devuelven el resultado final en el mismo tipo, y puede parecer que ambas funciones son equivalentes.

Sin embargo, existen algunas diferencias entre ellos. La función numpy.average() también puede calcular el promedio ponderado de un array, algo que no es posible en la función numpy.mean(). Para esto, simplemente pasamos los pesos como parámetro a la función como se muestra a continuación:

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

Producción :

Weighted Average Function:  18.3

Otra diferencia notable es que la función np.mean() puede tener muchos otros parámetros como dtype, out, where, keepdims, y más que no están disponibles en el np.average() Función.

Estos parámetros adicionales pueden ser beneficiosos; por ejemplo, podríamos tener una situación en la que el tipo de objeto cuyo promedio se va a calcular sea desconocido o ambiguo. En tales casos, podemos especificar el tipo usando el parámetro dtype. El parámetro out puede especificar si queremos almacenar el resultado en un array alternativa. También podemos establecer el eje a lo largo del cual queremos calcular la media utilizando el parámetro axis. El siguiente código muestra el uso de algunos parámetros en la función 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)

Producción :

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