Как вычислить среднее геометрическое в Python (с примерами)


В Python есть два способа вычисления среднего геометрического:

Метод 1: вычислить среднее геометрическое с помощью SciPy

from scipy. stats import gmean

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

Метод 2: вычислить среднее геометрическое с помощью 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, ...])

Оба метода вернут одинаковые результаты.

В следующих примерах показано, как использовать каждый из этих методов на практике.

Пример 1: расчет среднего геометрического с помощью SciPy

В следующем коде показано, как использовать функцию gmean() из библиотеки SciPy для вычисления среднего геометрического массива значений:

from scipy. stats import gmean

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

4.81788719702029

Среднее геометрическое оказывается равным 4,8179 .

Пример 2: вычисление среднего геометрического с использованием NumPy

В следующем коде показано, как написать пользовательскую функцию для вычисления среднего геометрического с использованием встроенных функций из библиотеки 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

Среднее геометрическое оказывается равным 4,8179 , что соответствует результату из предыдущего примера.

Как обращаться с нулями

Обратите внимание, что оба метода возвращают ноль, если в массиве, с которым вы работаете, есть нули.

Таким образом, вы можете использовать следующий фрагмент кода, чтобы удалить все нули из массива перед вычислением среднего геометрического:

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

Дополнительные ресурсы

Как рассчитать среднеквадратичную ошибку (MSE) в Python
Как рассчитать среднюю абсолютную ошибку в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.