python numpy

np.mean() vs np.average() en Python NumPy?



numpy average python (4)

En su invocación, las dos funciones son las mismas.

average puede calcular un promedio ponderado.

Enlaces a documentos: mean y average

El título lo dice todo.

Noto 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?


Hay otra diferencia importante que debes tener en cuenta:

average , no se toman en cuenta las máscaras, por lo tanto, calcule el promedio sobre todo el conjunto de datos.

mean toma en cuenta máscaras, por lo tanto, calcule la media solo sobre los valores sin máscara.

g = [1,2,3,55,66,77] f = np.ma.masked_greater(g,5) np.average(f) Out: 34.0 np.mean(f) Out: 2.0


np.average toma un parámetro de peso opcional. Si no se suministra, son equivalentes. Eche un vistazo al código fuente: Mean , Average

np.mean:

try: mean = a.mean except AttributeError: return _wrapit(a, ''mean'', axis, dtype, out) return mean(axis, dtype, out)

np.average:

... if weights is None : avg = a.mean(axis) scl = avg.dtype.type(a.size/avg.size) else: #code that does weighted mean here if returned: #returned is another optional argument scl = np.multiply(avg, 0) + scl return avg, scl else: return avg ...


np.mean siempre 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.average puede calcular un promedio ponderado si se proporciona el parámetro de weights .