np.bincount удобен, но имеет несколько ограничений, о которых важно помнить:

  1. Только неотрицательные целые числа
  • Все элементы входного массива должны быть ≥ 0
  • Отрицательные значения приведут к ошибке
import numpy as np
np.bincount([0,1,2,-1])  # ValueError
  1. Не работает с дробными или вещественными числами напрямую
  • Для чисел с плавающей точкой нужно сначала привести их к целым (например, через округление или биннинг)
data = np.array([0.1, 1.7, 2.3])
np.bincount(data.astype(int))  # работает, но теряется точность
  1. Размер массива результата зависит от максимального значения
  • Если есть большой элемент, например 10^6, массив bincount будет длиной 10^6 + 1
  • Это может потреблять много памяти
  1. Нет поддержки явных бинов или интервалов
  • Все значения интерпретируются как индексы
  • Для произвольных интервалов лучше использовать np.histogram
  1. Только для одномерных массивов
  • Для многомерных данных нужно предварительно «выпрямлять» массив

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