Como calcular a média geométrica em python (com exemplos)


Existem duas maneiras de calcular a média geométrica em Python:

Método 1: calcular a média geométrica usando SciPy

 from scipy. stats import gmean

#calculate geometric mean
gmean([value1, value2, value3, ...])

Método 2: calcular a média geométrica usando NumPy

 import numpy as np

#define custom function
def g_mean(x):
    a = np. log (x)
    return np. exp ( a.mean ())

#calculate geometric mean
g_mean([value1, value2, value3, ...])

Ambos os métodos retornarão exatamente os mesmos resultados.

Os exemplos a seguir mostram como usar cada um desses métodos na prática.

Exemplo 1: Calcular a média geométrica usando SciPy

O código a seguir mostra como usar a função gmean() da biblioteca SciPy para calcular a média geométrica de uma matriz de valores:

 from scipy. stats import gmean

#calculate geometric mean
gmean([1, 4, 7, 6, 6, 4, 8, 9])

4.81788719702029

A média geométrica acaba sendo 4,8179 .

Exemplo 2: Calcular a média geométrica usando NumPy

O código a seguir demonstra como escrever uma função personalizada para calcular uma média geométrica usando as funções integradas da biblioteca NumPy :

 import numpy as np

#define custom function
def g_mean(x):
    a = np. log (x)
return np. exp ( a.mean ())

#calculate geometric mean
g_mean([1, 4, 7, 6, 6, 4, 8, 9])

4.81788719702029

A média geométrica acaba sendo 4,8179 , o que corresponde ao resultado do exemplo anterior.

Como lidar com zeros

Observe que ambos os métodos retornarão zero se houver zeros no array com o qual você está trabalhando.

Portanto, você pode usar o seguinte trecho de código para remover zeros de uma matriz antes de calcular a média geométrica:

 #create array with some zeros
x = [1, 0, 0, 6, 6, 0, 8, 9]

#remove zeros from array 
x_new = [i for i in x if i != 0]

#view updated array
print (x_new)

[1, 6, 6, 8, 9]

Recursos adicionais

Como calcular o erro quadrático médio (MSE) em Python
Como calcular o erro médio absoluto em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *