numpy.histogram#

numpy.гистограмма(a, bins=10, range=None, плотность=None, веса=None)[источник]#

Вычислить гистограмму набора данных.

Параметры:
aarray_like

Входные данные. Гистограмма вычисляется по сглаженному массиву.

binsint или последовательность скаляров или str, необязательно

Если bins является целым числом, оно определяет количество равных по ширине бинов в заданном диапазоне (по умолчанию 10). Если bins является последовательностью, она определяет монотонно возрастающий массив границ бинов, включая правую границу, что позволяет использовать неравномерную ширину бинов.

Если bins является строкой, она определяет метод, используемый для вычисления оптимальной ширины бина, как определено histogram_bin_edges.

range(float, float), необязательный

Нижний и верхний диапазоны бинов. Если не указаны, диапазон просто (a.min(), a.max()). Значения вне диапазона игнорируются. Первый элемент диапазона должен быть меньше или равен второму. range влияет на автоматическое вычисление бинов. Хотя ширина бина вычисляется оптимально на основе фактических данных в rangeколичество бинов заполнит весь диапазон, включая участки, не содержащие данных.

весаarray_like, необязательный

Массив весов той же формы, что и a. Каждое значение в a вносит только связанный с ним вес в подсчёт бина (вместо 1). Если плотность равно True, веса нормализуются, так что интеграл плотности по диапазону остаётся равным 1. Обратите внимание, что dtype of веса также станет dtype возвращаемого аккумулятора (hist), поэтому он должен быть достаточно большим, чтобы вмещать накопленные значения.

плотностьbool, необязательно

Если False, результат будет содержать количество образцов в каждой корзине. Если True, результат — это значение вероятности плотность функция в бине, нормализованная так, что интеграл по диапазону равна 1. Обратите внимание, что сумма значений гистограммы не будет равна 1, если не выбраны интервалы единичной ширины; это не вероятность масса функция.

Возвращает:
histмассив

Значения гистограммы. См. плотность и веса для описания возможных семантик. Если веса указаны, hist.dtype будет взят из веса.

bin_edgesмассив типа float

Возвращает границы бинов (length(hist)+1).

Примечания

Все, кроме последнего (самого правого) интервала, полуоткрыты. Другими словами, если bins равен:

[1, 2, 3, 4]

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

Примеры

>>> import numpy as np
>>> np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
(array([0, 2, 1]), array([0, 1, 2, 3]))
>>> np.histogram(np.arange(4), bins=np.arange(5), density=True)
(array([0.25, 0.25, 0.25, 0.25]), array([0, 1, 2, 3, 4]))
>>> np.histogram([[1, 2, 1], [1, 0, 1]], bins=[0,1,2,3])
(array([1, 4, 1]), array([0, 1, 2, 3]))
>>> a = np.arange(5)
>>> hist, bin_edges = np.histogram(a, density=True)
>>> hist
array([0.5, 0. , 0.5, 0. , 0. , 0.5, 0. , 0.5, 0. , 0.5])
>>> hist.sum()
2.4999999999999996
>>> np.sum(hist * np.diff(bin_edges))
1.0

Пример автоматических методов выбора бинов, используя случайные данные с 2 пиками и 2000 точек.

import matplotlib.pyplot as plt
import numpy as np

rng = np.random.RandomState(10)  # deterministic random data
a = np.hstack((rng.normal(size=1000),
               rng.normal(loc=5, scale=2, size=1000)))
plt.hist(a, bins='auto')  # arguments are passed to np.histogram
plt.title("Histogram with 'auto' bins")
plt.show()
../../_images/numpy-histogram-1.png