NumPy mean() vs average()

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

A média é o valor central de um conjunto de observações. Pode haver muitas formas de média, como média geométrica, harmônica e aritmética. No mundo das estatísticas, a média aritmética e a média são usadas alternadamente. Ambos são calculados usando a mesma fórmula, ou seja, soma do total de observações dividido pelo número total de observações.

Em Python, temos duas funções que podem calcular a média aritmética ou média. Estas são as funções numpy.mean() e numpy.average() disponíveis no módulo NumPy.

Ambas as funções podem ser usadas para calcular a média aritmética ou média conforme mostrado abaixo:

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

Resultado:

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

Observe que ambas retornam a saída final no mesmo tipo e pode parecer que ambas as funções são equivalentes.

No entanto, existem algumas diferenças entre eles. A função numpy.average() também pode calcular a média ponderada de um array, algo que não é possível na função numpy.mean(). Para isso, simplesmente passamos os pesos como um parâmetro para a função conforme mostrado abaixo:

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

Resultado:

Weighted Average Function:  18.3

Outra diferença notável é que a função np.mean() pode ter muitos outros parâmetros como dtype, out, where, keepdims e mais que não estão disponíveis em np.average() Função.

Esses parâmetros adicionais podem ser benéficos; por exemplo, podemos ter uma situação em que o tipo de objeto cuja média deve ser calculada é desconhecido ou ambíguo. Nesses casos, podemos especificar o tipo usando o parâmetro dtype. O parâmetro out pode especificar se queremos armazenar o resultado em un array alternativa. Também podemos definir o eixo ao longo do qual queremos calcular a média usando o parâmetro axis. O código a seguir mostra o uso de alguns parâmetros na função 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)

Resultado:

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