Spec-Zone.ru › NumPy 1.15

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")
>>> 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.15.4/reference/generated/numpy.histogram.html

Spec-Zone.ru

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