Spec-Zone.ru › NumPy 1.17

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

© 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

Spec-Zone.ru

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