В функциональном плане np.bincount — это быстрый и эффективный способ построить частотный массив для дискретных неотрицательных целых данных. Он позволяет не только посчитать, сколько раз встречается каждое число, но и выполнять взвешивание элементов.
Основной синтаксис:
np.bincount(x, weights=None, minlength=0)x— одномерный массив неотрицательных целых чиселweights— массив тех же размеров, задающий веса элементовminlength— минимальная длина результата (добавляет нули, если максимум меньше)
Примеры:
- Простейшее использование
import numpy as np
data = np.array([0, 1, 1, 2, 2, 2])
freq = np.bincount(data)
print(freq) # [1 2 3]- Возвращает массив, где индекс соответствует значению, а элемент — его частоте
- С весами
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]- Вместо подсчёта числа повторов суммируются веса соответствующих элементов
- Задание минимальной длины
np.bincount(data, minlength=5) # [1 2 3 0 0]- Добавляет нули, если нужно получить массив определённого размера
Преимущества:
- Очень быстрый для больших массивов целых чисел
- Позволяет выполнять агрегирование с весами
- Отлично подходит для построения дискретных частотных массивов и последующей гистограммы
Ограничения (функциональные):
- Только неотрицательные целые числа
- Одномерный входной массив
- Размер результата =
max(x)+1илиminlength - Не поддерживает вещественные или произвольные бины напрямую
Коротко:
np.bincount — инструмент для построения частотного массива для дискретных целых чисел с возможностью задания весов и минимальной длины, идеально подходящий для анализа распределений и гистограмм.