Spec-Zone.ru › NumPy 1.20

numpy.histogram

numpy.histogram(a, bins=10, range=None, normed=None, weights=None, density=None) [source]

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

Параметры
aarray_like

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

binsint 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, количество интервалов будет охватывать весь диапазон, включая части, не содержащие данных.

normedbool, optional

Устарело начиная с версии 1.6.0.

Это эквивалентно аргументу density, но приводит к неверным результатам для неравномерной ширины интервалов. Его не следует использовать.

Изменено в версии 1.15.0: Вместо этого фактически генерируются предупреждения о устаревании.

weightsarray_like, optional

Массив весов, имеющий такую же форму, что и a. Каждое значение в a вносит свой связанный вес в счет интервала (вместо 1). Если density равно True, веса нормализуются, так что интеграл плотности в диапазоне остается равным 1.

densitybool, optional

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

Переопределяет ключевое слово normed, если оно задано.

Возвращает
histarray

Значения гистограммы. См. density и weights для описания возможных семантик.

bin_edgesarray 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()
../../_images/numpy-histogram-1.png

© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.histogram.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API