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. Обратите внимание, что
dtypeof веса также станет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()