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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *