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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.histogram.html