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.19/reference/generated/numpy.histogram.html