numpy.histogram
- numpy.histogram(a, bins=10, range=None, density=None, weights=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, количество интервалов будет заполнять весь диапазон, включая части, не содержащие данных. - weightsarray_like, необязательно
-
Массив весов, имеющий такую же форму, как
a. Каждое значение вaвносит свой связанный вес в подсчёт интервалов (вместо 1). Еслиdensityравно True, веса нормализуются, так что интеграл плотности по диапазону остаётся равным 1. Обратите внимание, чтоdtypeweightsтакже станетdtypeвозвращаемого аккумулятора (hist), поэтому он должен быть достаточно большим для хранения накопленных значений. - densitybool, необязательно
-
Если
False, результат будет содержать количество выборок в каждом интервале. ЕслиTrue, результат представляет собой значение функции плотности вероятности в интервале, нормализованное так, что интеграл по диапазону равен 1. Обратите внимание, что сумма значений гистограммы не будет равна 1, если не выбраны интервалы единичной ширины; это не функция массы вероятности.
- Возвращает:
-
- histмассив
-
Значения гистограммы. См.
densityиweightsдля описания возможных семантик. Еслиweightsзаданы,hist.dtypeбудут взяты изweights. - bin_edgesмассив типа float
-
Возвращает границы интервалов
(length(hist)+1).
См. также
Примечания
Все интервалы, кроме последнего (правого), являются полуоткрытыми. Другими словами, если
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 import numpy as np 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()
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.histogram.html