Me doy cuenta de que
In [30]: np.mean([1, 2, 3])
Out[30]: 2.0
In [31]: np.average([1, 2, 3])
Out[31]: 2.0
Sin embargo, debería haber algunas diferencias, ya que después de todo son dos funciones diferentes.
Cuáles son las diferencias entre ellos?

Respuestas:
np.average toma un parámetro de peso opcional. Si no se suministra son equivalentes. Echa un vistazo al código fuente: media , media
np.mean:
np.average:
fuente
np.averageyaweightsque ya es opcional. Parece innecesario y solo sirve para confundir a los usuarios.np.meansiempre calcula una media aritmética y tiene algunas opciones adicionales para entrada y salida (por ejemplo, qué tipos de datos usar, dónde colocar el resultado).np.averagepuede calcular un promedio ponderado siweightsse proporciona el parámetro.fuente
En alguna versión de numpy hay otra diferencia importante que debes tener en cuenta:
averageNo tome en cuenta las máscaras, por lo tanto, calcule el promedio de todo el conjunto de datos.meantoma en cuenta las máscaras, así que calcule la media solo sobre los valores sin máscara.fuente
np.ma.averagefunciona. Además, hay un informe de error .En su invocación, las dos funciones son las mismas.
averageSin embargo, puede calcular un promedio ponderado.Doc enlaces:
meanyaveragefuente
Además de las diferencias ya señaladas, hay otra diferencia extremadamente importante que acabo de descubrir por el camino difícil: a diferencia
np.mean,np.averageno permite ladtypepalabra clave, que es esencial para obtener resultados correctos en algunos casos. Tengo una matriz de precisión única muy grande a la que se accede desde unh5archivo. Si tomo la media a lo largo de los ejes 0 y 1, obtengo resultados completamente incorrectos a menos que especifiquedtype='float64':Desafortunadamente, a menos que sepa qué buscar, no necesariamente puede decir que sus resultados son incorrectos. Nunca lo volveré a usar
np.averagepor este motivo, pero siempre lo usarénp.mean(.., dtype='float64')en cualquier matriz grande. Si quiero un promedio ponderado, lo calcularé explícitamente usando el producto del vector de peso y la matriz de destino y luegonp.sumo biennp.mean, según corresponda (con la precisión adecuada también).fuente