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