В NumPy bincount и гистограмма тесно связаны: оба дают частотное представление данных, но работают немного по-разному.

1. np.bincount

  • Принимает массив целых неотрицательных чисел
  • Возвращает массив, где каждый индекс соответствует числу, а значение — сколько раз оно встречается

Пример:

import numpy as np
 
data = np.array([0, 1, 1, 2, 2, 2])
freq = np.bincount(data)
print(freq)  # [1 2 3]

– индекс 0 → значение 0 встречается 1 раз
– индекс 1 → значение 1 встречается 2 раза
– индекс 2 → значение 2 встречается 3 раза

2. Гистограмма (np.histogram)

  • Может работать с целыми и непрерывными данными
  • Разбивает диапазон значений на бины
  • Считает количество элементов в каждом интервале

Пример:

hist, bins = np.histogram(data, bins=3, range=(0,3))
print(hist)  # [1 2 3]
print(bins)  # [0. 1. 2. 3.]

– Если данные — целые и бины соответствуют целым, результат hist совпадает с bincount

Связь:

  • bincount можно считать частным случаем гистограммы для целых чисел
  • Гистограмма более общая: работает с дробными числами и произвольными диапазонами

Итого:

  • bincount — удобен для дискретных целых данных
  • np.histogram — для любых числовых данных, с возможностью выбора интервалов
  • Частотный массив, который даёт bincount, фактически является гистограммой с бинами, выровненными по целым числам

Коротко:
bincount строит частотный массив для целых чисел, что эквивалентно гистограмме с бинами, центрированными на этих числах.