Как вычислить среднее геометрическое в 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