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подходящей формы вместо 2Dnp.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