Сообщить об ошибке.

Функция harmonic_mean() модуля statistics в Python, среднее гармоническое

Среднее гармоническое элементов последовательности

Синтаксис:

import statistics

# Новое в Python 3.6.
statistics.harmonic_mean(data, weights=None)

Параметры:

  • data - данные, последовательность или итерация.
  • weights=None - веса данных, последовательность или итерация (доступно с версии Python 3.10).

Возвращаемое значение:

  • среднее гармоническое значение последовательности data.

Описание:

Функция harmonic_mean() модуля statistics возвращает среднее гармоническое значение числовой последовательности. Если веса weights опущены или None, то предполагается равный вес.

Среднее гармоническое, иногда называемое субконтрарным средним, является обратной величиной среднего арифметического mean() взаимных значений данных. Например, среднее гармоническое трех значений a, b и c будет эквивалентно 3/(1/a + 1/b + 1/c). Если одно из значений равно нулю, то результат то же будет равен нулю.

Среднее гармоническое - это тип среднего, мера центрального расположения данных. Это значение часто уместно при усреднении скоростей или коэффициентов.

Рассмотрим на примере. Предположим, что автомобиль проезжает 10 км со скоростью 40 км/ч, а затем еще 10 км со скоростью 60 км/ч. Какова средняя скорость?

>>> import statistics
>>> statistics.harmonic_mean([40, 60])
# 48.0

Теперь предположим, что автомобиль движется со скоростью 40 км/ч на протяжении 5 км, а когда движение становится свободным, развивает скорость до 60 км/час на оставшиеся 30 км пути. Какая средняя скорость?

>>> import statistics
>>> statistics.harmonic_mean([40, 60], weights=[5, 30])
# 56.0

Еще пример. Предположим, что инвестор приобретает равную стоимость акций в каждой из трех компаний, при этом коэффициент P/E (цена/доход) составляет 2.5, 3 и 10. Каково среднее соотношение P/E для портфеля инвестора?

>>> import statistics
# Для равного инвестиционного портфеля.
>>> statistics.harmonic_mean([2.5, 3, 10])  # For an equal investment portfolio.
# 3.6

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

Изменено в Python 3.10: Добавлена ​​поддержка весов.