Spec-Zone.ru › NumPy 1.18

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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.histogram.html

Spec-Zone.ru

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