scipy.stats.

binned_statistic_2d#

scipy.stats.binned_statistic_2d(x, y, values, статистика='mean', bins=10, range=None, expand_binnumbers=False)[источник]#

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

Это обобщение функции histogram2d. Гистограмма делит пространство на бины и возвращает количество точек в каждом бине. Эта функция позволяет вычислять сумму, среднее, медиану или другую статистику значений (или набора значений) в каждом бине.

Параметры:
x(N,) array_like

Последовательность значений для бинирования по первому измерению.

y(N,) array_like

Последовательность значений для бинирования по второму измерению.

values(N,) array_like или список из (N,) array_like

Данные, по которым будет вычисляться статистика. Они должны иметь ту же форму, что и x, или список последовательностей - каждая с той же формой, что и x. Если values если это такой список, статистика будет вычислена для каждого независимо.

статистикастрока или вызываемый объект, необязательный

Статистика для вычисления (по умолчанию 'mean'). Доступны следующие статистики:

  • ‘mean’ : вычисляет среднее значений точек в каждом бине. Пустые бины будут представлены NaN.

  • 'std' : вычисляет стандартное отклонение внутри каждого бина. Это неявно рассчитывается с ddof=0.

  • ‘median’ : вычисляет медиану значений для точек в каждом бине. Пустые бины будут представлены NaN.

  • 'count' : вычисление количества точек в каждом бине. Это идентично невзвешенной гистограмме. values массив не используется.

  • ‘sum’ : вычисляет сумму значений для точек в каждом бине. Это идентично взвешенной гистограмме.

  • 'min' : вычисляет минимальное значение точек в каждом бине. Пустые бины будут представлены NaN.

  • ‘max’ : вычисление максимального значения для точек в каждом бине. Пустые бины будут представлены NaN.

  • функция : пользовательская функция, которая принимает 1D массив значений и выводит одну числовую статистику. Эта функция будет вызываться для значений в каждом бине. Пустые бины будут представлены как function([]) или NaN, если это возвращает ошибку.

binsint или [int, int] или array_like или [array, array], опционально

Спецификация бина:

  • количество бинов для двух измерений (nx = ny = bins),

  • количество бинов в каждом измерении (nx, ny = bins),

  • границы бинов для двух измерений (x_edge = y_edge = bins),

  • границы бинов в каждом измерении (x_edge, y_edge = bins).

Если указаны границы бинов, количество бинов будет (nx = len(x_edge)-1, ny = len(y_edge)-1).

range(2,2) array_like, опционально

Левый и правый края бинов по каждому измерению (если не указаны явно в bins параметры): [[xmin, xmax], [ymin, ymax]]. Все значения вне этого диапазона будут считаться выбросами и не учитываться в гистограмме.

expand_binnumbersbool, необязательно

‘False’ (по умолчанию): возвращаемый binnumber является массивом формы (N,) линейных индексов бинов. ‘True’: возвращаемый binnumber разворачивается в массив формы (2,N) ndarray, где каждая строка дает номера бинов в соответствующем измерении. См. binnumber возвращаемое значение, и Примеры раздел.

Добавлено в версии 0.17.0.

Возвращает:
статистика(nx, ny) ndarray

Значения выбранной статистики в каждом двумерном бине.

x_edge(nx + 1) ndarray

Границы бинов по первому измерению.

y_edge(ny + 1) ndarray

Границы бинов по второму измерению.

binnumber(N,) массив целых чисел или (2,N) ndarray целых чисел

Это присваивает каждому элементу sample целое число, которое представляет бинарный контейнер, в который попадает это наблюдение. Представление зависит от expand_binnumbers аргумент. См. Примечания подробности.

Примечания

Границы бинов: Все, кроме последнего (самого правого) бина, полуоткрыты. Другими словами, если bins является [1, 2, 3, 4], тогда первый бинарный интервал [1, 2) (включая 1, но исключая 2) и второй [2, 3). Однако последний бинар [3, 4], который includes 4.

binnumber: Этот возвращаемый аргумент присваивает каждому элементу sample целое число, которое представляет бинарный контейнер, к которому оно принадлежит. Представление зависит от expand_binnumbers аргумент. Если 'False' (по умолчанию): Возвращаемый binnumber является массивом формы (N,) линейных индексов, отображающих каждый элемент sample в соответствующий бинарный контейнер (используя порядок строк-столбцов). Обратите внимание, что возвращаемые линейные индексы бинарных контейнеров используются для массива с дополнительными контейнерами на внешних границах для захвата значений за пределами определенных границ контейнеров. Если 'True': Возвращаемый binnumber имеет форму (2,N) ndarray, где каждая строка указывает размещение бинов для каждого измерения соответственно. В каждом измерении номер бина i означает, что соответствующее значение находится между (D_edge[i-1], D_edge[i]), где ‘D’ — это либо ‘x’, либо ‘y’.

Добавлено в версии 0.11.0.

Примеры

>>> from scipy import stats

Вычислить количество с явными границами бинов:

>>> x = [0.1, 0.1, 0.1, 0.6]
>>> y = [2.1, 2.6, 2.1, 2.1]
>>> binx = [0.0, 0.5, 1.0]
>>> biny = [2.0, 2.5, 3.0]
>>> ret = stats.binned_statistic_2d(x, y, None, 'count', bins=[binx, biny])
>>> ret.statistic
array([[2., 1.],
       [1., 0.]])

Бин, в который помещается каждый образец, задается binnumber возвращаемом параметре. По умолчанию это линейные индексы бинов:

>>> ret.binnumber
array([5, 6, 5, 9])

Индексы бинов также могут быть развернуты в отдельные записи для каждого измерения с использованием expand_binnumbers параметр:

>>> ret = stats.binned_statistic_2d(x, y, None, 'count', bins=[binx, biny],
...                                 expand_binnumbers=True)
>>> ret.binnumber
array([[1, 1, 1, 2],
       [1, 2, 1, 1]])

Что показывает, что первые три элемента принадлежат xbin 1, а четвертый — xbin 2; и так далее для y.