вариация#
- scipy.stats.вариация(a, ось=0, nan_policy='propagate', ddof=0, *, keepdims=False)[источник]#
Вычислить коэффициент вариации.
Коэффициент вариации — это стандартное отклонение, деленное на среднее значение. Эта функция эквивалентна:
np.std(x, axis=axis, ddof=ddof) / np.mean(x)
Значение по умолчанию для
ddofравно 0, но многие определения коэффициента вариации используют квадратный корень из несмещенной выборочной дисперсии для выборочного стандартного отклонения, что соответствуетddof=1.Функция не берёт абсолютное значение среднего данных, поэтому возвращаемое значение отрицательно, если среднее отрицательно.
- Параметры:
- aarray_like
Входной массив.
- осьint или None, по умолчанию: 0
Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если
None, вход будет сведён в одномерный массив перед вычислением статистики.- nan_policy{‘propagate’, ‘omit’, ‘raise’}
Определяет, как обрабатывать входные значения NaN.
propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.raise: если присутствует NaN, тоValueErrorбудет вызвано исключение.
- ddofint, необязательный
Даёт «Дельта степеней свободы», используемых при вычислении стандартного отклонения. Делитель, используемый при расчёте стандартного отклонения, равен
N - ddof, гдеNэто количество элементов. ddof должно быть меньшеN; если это не так, результат будетnanилиinf, в зависимости отNи значения в массиве. По умолчанию ddof равно нулю для обратной совместимости, но рекомендуется использоватьddof=1чтобы гарантировать, что выборочное стандартное отклонение вычисляется как квадратный корень из несмещённой выборочной дисперсии.- keepdimsbool, по умолчанию: False
Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.
- Возвращает:
- вариацияndarray
Рассчитанная вариация вдоль запрошенной оси.
Примечания
Существует несколько граничных случаев, которые обрабатываются без генерации предупреждения:
Если и среднее, и стандартное отклонение равны нулю,
nanвозвращается.Если среднее равно нулю, а стандартное отклонение ненулевое,
infвозвращается.Если входные данные имеют нулевую длину (либо потому что массив имеет нулевую длину, либо все входные значения
nanиnan_policyявляется'omit'),nanвозвращается.Если вход содержит
inf,nanвозвращается.
Начиная с SciPy 1.9,
np.matrixвходные данные (не рекомендуется для нового кода) преобразуются вnp.ndarrayперед выполнением вычисления. В этом случае результатом будет скаляр илиnp.ndarrayподходящей формы вместо 2Dnp.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр илиnp.ndarrayвместо маскированного массива сmask=False.Ссылки
[1]Цвиллингер, Д. и Кокошка, С. (2000). CRC Стандартные таблицы и формулы вероятности и статистики. Chapman & Hall: Нью-Йорк. 2000.
Примеры
>>> import numpy as np >>> from scipy.stats import variation >>> variation([1, 2, 3, 4, 5], ddof=1) 0.5270462766947299
Вычислить вариацию вдоль заданного измерения массива, который содержит несколько
nanзначения:>>> x = np.array([[ 10.0, np.nan, 11.0, 19.0, 23.0, 29.0, 98.0], ... [ 29.0, 30.0, 32.0, 33.0, 35.0, 56.0, 57.0], ... [np.nan, np.nan, 12.0, 13.0, 16.0, 16.0, 17.0]]) >>> variation(x, axis=1, ddof=1, nan_policy='omit') array([1.05109361, 0.31428986, 0.146483 ])