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()
© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.histogram.html