scipy.stats.mstats.

gmean#

scipy.stats.mstats.gmean(a, ось=0, dtype=None, веса=None, *, nan_policy='propagate', keepdims=False)[источник]#

Вычисляет взвешенное среднее геометрическое вдоль указанной оси.

Взвешенное среднее геометрическое массива \(a_i\) связанные с весами \(w_i\) равен:

\[\exp \left( \frac{ \sum_{i=1}^n w_i \ln a_i }{ \sum_{i=1}^n w_i } \right) \, ,\]

и, с равными весами, это даёт:

\[\sqrt[n]{ \prod_{i=1}^n a_i } \, .\]
Параметры:
aarray_like

Входной массив или объект, который может быть преобразован в массив.

осьint или None, по умолчанию: 0

Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если None, вход будет сведён в одномерный массив перед вычислением статистики.

dtypedtype, опционально

Тип, к которому приводятся входные массивы перед выполнением вычисления.

весаarray_like, необязательный

The веса массив должен быть транслируемым к той же форме, что и a. По умолчанию None, что присваивает каждому значению вес 1.0.

nan_policy{‘propagate’, ‘omit’, ‘raise’}

Определяет, как обрабатывать входные значения NaN.

  • propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.

  • omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.

  • raise: если присутствует NaN, то ValueError будет вызвано исключение.

keepdimsbool, по умолчанию: False

Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.

Возвращает:
gmeanndarray

См. dtype параметр выше.

Смотрите также

numpy.mean

Среднее арифметическое

numpy.average

Взвешенное среднее

hmean

Среднее гармоническое

Примечания

Выборочное среднее геометрическое — это экспонента от среднего натуральных логарифмов наблюдений. Отрицательные наблюдения дадут NaN на выходе, потому что естественный логарифм (в отличие от комплексный логарифм) определен только для неотрицательных вещественных чисел.

Начиная с SciPy 1.9, np.matrix входные данные (не рекомендуется для нового кода) преобразуются в np.ndarray перед выполнением вычисления. В этом случае результатом будет скаляр или np.ndarray подходящей формы вместо 2D np.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр или np.ndarray вместо маскированного массива с mask=False.

gmean имеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окружения SCIPY_ARRAY_API=1 и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

Dask

н/д

См. Поддержка стандарта array API для получения дополнительной информации.

Ссылки

[1]

“Взвешенное среднее геометрическое”, Википедия, https://en.wikipedia.org/wiki/Weighted_geometric_mean.

[2]

Гроссман Дж., Гроссман М., Кац Р., «Средние: новый подход», Фонд Архимеда, 1983

Примеры

>>> from scipy.stats import gmean
>>> gmean([1, 4])
2.0
>>> gmean([1, 2, 3, 4, 5, 6, 7])
3.3800151591412964
>>> gmean([1, 4, 7], weights=[3, 1, 3])
2.80668351922014