mode#
- scipy.stats.mode(a, ось=0, nan_policy='propagate', keepdims=False)[источник]#
Возвращает массив модального (наиболее частого) значения в переданном массиве.
Если существует более одного такого значения, возвращается только одно. Также возвращается количество элементов в модальных бинах.
- Параметры:
- aarray_like
Числовой n-мерный массив, для которого нужно найти моду(ы).
- осьint или None, по умолчанию: 0
Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если
None, вход будет сведён в одномерный массив перед вычислением статистики.- nan_policy{‘propagate’, ‘omit’, ‘raise’}
Определяет, как обрабатывать входные значения NaN.
propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.raise: если присутствует NaN, тоValueErrorбудет вызвано исключение.
- keepdimsbool, по умолчанию: False
Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.
- Возвращает:
- modendarray
Массив модальных значений.
- countndarray
Массив частот для каждой моды.
Примечания
Мода вычисляется с использованием
numpy.unique. В версиях NumPy 1.21 и выше все NaN - даже с разными двоичными представлениями - рассматриваются как эквивалентные и считаются отдельными экземплярами одного и того же значения.По соглашению, мода пустого массива равна NaN, а связанное количество равно нулю.
Начиная с SciPy 1.9,
np.matrixвходные данные (не рекомендуется для нового кода) преобразуются вnp.ndarrayперед выполнением вычисления. В этом случае результатом будет скаляр илиnp.ndarrayподходящей формы вместо 2Dnp.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр илиnp.ndarrayвместо маскированного массива сmask=False.Примеры
>>> import numpy as np >>> a = np.array([[3, 0, 3, 7], ... [3, 2, 6, 2], ... [1, 7, 2, 8], ... [3, 0, 6, 1], ... [3, 2, 5, 5]]) >>> from scipy import stats >>> stats.mode(a, keepdims=True) ModeResult(mode=array([[3, 0, 6, 1]]), count=array([[4, 2, 2, 1]]))
Чтобы получить моду всего массива, укажите
axis=None:>>> stats.mode(a, axis=None, keepdims=True) ModeResult(mode=[[3]], count=[[5]]) >>> stats.mode(a, axis=None, keepdims=False) ModeResult(mode=3, count=5)