scipy.stats.

percentileofscore#

scipy.stats.percentileofscore(a, score, kind='rank', nan_policy='propagate')[источник]#

Вычисление процентильного ранга оценки относительно списка оценок.

A percentileofscore например, 80% означает, что 80% оценок в a ниже заданного значения. В случае пропусков или совпадений, точное определение зависит от необязательного ключевого слова, kind.

Параметры:
aarray_like

Одномерный массив, к которому score сравнивается.

scorearray_like

Оценки, для которых вычисляются процентили.

kind{‘rank’, ‘weak’, ‘strict’, ‘mean’}, опционально

Определяет интерпретацию получаемой оценки. Доступны следующие варианты (по умолчанию 'rank'):

  • 'rank': Средний процентный ранг оценки. В случае нескольких совпадений усредняется процентный ранг всех подходящих оценок.

  • ‘weak’: Этот тип соответствует определению кумулятивной функции распределения. Процентиль 80% означает, что 80% значений меньше или равны предоставленному значению.

  • ‘strict’: Аналогично “weak”, за исключением того, что учитываются только значения, строго меньшие заданного балла.

  • ‘mean’: Среднее значение «слабых» и «строгих» оценок, часто используемое в тестировании. См. https://en.wikipedia.org/wiki/Percentile_rank

nan_policy{'propagate', 'raise', 'omit'}, опционально

Определяет, как обрабатывать nan значения в a. Доступны следующие опции (по умолчанию 'propagate'):

  • ‘propagate’: возвращает nan (для каждого значения в score).

  • ‘raise’: вызывает ошибку

  • 'omit': выполняет вычисления, игнорируя значения nan

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

Процентильная позиция оценки (0-100) относительно a.

Примеры

Три четверти заданных значений лежат ниже заданной оценки:

>>> import numpy as np
>>> from scipy import stats
>>> stats.percentileofscore([1, 2, 3, 4], 3)
75.0

При нескольких совпадениях обратите внимание, как усредняются оценки двух совпадений, 0.6 и 0.8 соответственно:

>>> stats.percentileofscore([1, 2, 3, 3, 4], 3)
70.0

Только 2/5 значений строго меньше 3:

>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='strict')
40.0

Но 4/5 значений меньше или равны 3:

>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='weak')
80.0

Среднее между слабой и строгой оценками:

>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='mean')
60.0

Поддерживаются массивы оценок (любой размерности):

>>> stats.percentileofscore([1, 2, 3, 3, 4], [2, 3])
array([40., 70.])

Входные данные могут быть бесконечными:

>>> stats.percentileofscore([-np.inf, 0, 1, np.inf], [1, 2, np.inf])
array([75., 75., 100.])

Если a пуст, тогда результирующие процентили все nan:

>>> stats.percentileofscore([], [1, 2])
array([nan, nan])