Spec-Zone.ru › NumPy 1.21

numpy.histogram

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

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

Параметры
aarray_like

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

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

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

Новое в версии 1.11.0.

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

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

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

normedbool, необязательно

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

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

Изменено в версии 1.15.0: Действительно выводится предупреждение об устаревании.

weightsarray_like, необязательно

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

densitybool, необязательно

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

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

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

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

bin_edgesмассив типа 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.histogram.html

Spec-Zone.ru

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