numpy.histogram
-
numpy.histogram(a, bins=10, range=None, normed=None, weights=None, density=None)[source] -
Вычисление гистограммы набора данных.
Параметры: -
a : array_like -
Входные данные. Гистограмма вычисляется по уплощённому массиву.
-
bins : int or sequence of scalars or str, optional -
Если
bins— целое число, оно определяет количество равномерных интервалов в заданном диапазоне (по умолчанию 10). Еслиbins— последовательность, она определяет монотонно возрастающий массив границ интервалов, включая правую границу, что позволяет использовать неравномерную ширину интервалов.Добавлена в версии 1.11.0.
Если
bins— строка, она определяет метод, используемый для вычисления оптимальной ширины интервала, как определено вhistogram_bin_edges. -
range : (float, float), optional -
Нижняя и верхняя границы интервалов. Если не указаны, диапазон просто
(a.min(), a.max()). Значения вне диапазона игнорируются. Первый элемент диапазона должен быть меньше или равен второму.rangeтакже влияет на автоматическое вычисление интервалов. Хотя ширина интервала вычисляется как оптимальная на основе фактических данных вrange, количество интервалов будет заполнять весь диапазон, включая части, не содержащие данных. -
normed : bool, optional -
Устарело начиная с версии 1.6.0.
Это эквивалентно аргументу
density, но приводит к неправильным результатам для неравномерной ширины интервалов. Не следует использовать.Изменено в версии 1.15.0: На самом деле выпущены предупреждения об устаревании.
-
weights : array_like, optional -
Массив весов, имеющий такую же форму, как и
a. Каждое значение вaвносит свой связанный вес в счёт интервала (вместо 1). Еслиdensityравно True, веса нормализуются, так что интеграл плотности по диапазону остаётся равным 1. -
density : bool, optional -
Если
False, результат будет содержать количество выборок в каждом интервале. ЕслиTrue, результат — значение функции плотности вероятности в интервале, нормированное так, что интеграл по диапазону равен 1. Обратите внимание, что сумма значений гистограммы не будет равна 1, если не выбраны интервалы единичной ширины; это не функция массы вероятности.Переопределяет ключевое слово
normedпри его указании.
Возвращает: -
hist : array -
Значения гистограммы. Смотрите
densityиweightsдля описания возможных семантик. -
bin_edges : array of dtype float -
Возвращает границы интервалов
(length(hist)+1).
См. также
histogramdd,bincount,searchsorted,digitize,histogram_bin_edgesПримечания
Все, кроме последнего (правого) интервала, являются полуоткрытыми. Другими словами, если
bins:[1, 2, 3, 4]
то первый интервал —
[1, 2)(включая 1, но не включая 2), а второй —[2, 3). Однако последний интервал —[3, 4], который включает 4.Примеры
>>> 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
Добавлена в версии 1.11.0.
Пример методов автоматического выбора интервалов, используя 2 пиковых случайных данных с 2000 точками:
>>> import matplotlib.pyplot as plt >>> 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") Text(0.5, 1.0, "Histogram with 'auto' bins") >>> plt.show() -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.histogram.html