В функциональном плане np.bincount — это быстрый и эффективный способ построить частотный массив для дискретных неотрицательных целых данных. Он позволяет не только посчитать, сколько раз встречается каждое число, но и выполнять взвешивание элементов.

Основной синтаксис:

np.bincount(x, weights=None, minlength=0)
  • x — одномерный массив неотрицательных целых чисел
  • weights — массив тех же размеров, задающий веса элементов
  • minlength — минимальная длина результата (добавляет нули, если максимум меньше)

Примеры:

  1. Простейшее использование
import numpy as np
 
data = np.array([0, 1, 1, 2, 2, 2])
freq = np.bincount(data)
print(freq)  # [1 2 3]
  • Возвращает массив, где индекс соответствует значению, а элемент — его частоте
  1. С весами
weights = np.array([0.5, 1.0, 0.5, 2.0, 1.0, 3.0])
freq_weighted = np.bincount(data, weights=weights)
print(freq_weighted)  # [0.5 1.5 6.0]
  • Вместо подсчёта числа повторов суммируются веса соответствующих элементов
  1. Задание минимальной длины
np.bincount(data, minlength=5)  # [1 2 3 0 0]
  • Добавляет нули, если нужно получить массив определённого размера

Преимущества:

  • Очень быстрый для больших массивов целых чисел
  • Позволяет выполнять агрегирование с весами
  • Отлично подходит для построения дискретных частотных массивов и последующей гистограммы

Ограничения (функциональные):

  • Только неотрицательные целые числа
  • Одномерный входной массив
  • Размер результата = max(x)+1 или minlength
  • Не поддерживает вещественные или произвольные бины напрямую

Коротко:
np.bincount — инструмент для построения частотного массива для дискретных целых чисел с возможностью задания весов и минимальной длины, идеально подходящий для анализа распределений и гистограмм.