РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
222 of 541 menu

Функция bincount

Функция bincount подсчитывает количество вхождений каждого неотрицательного целого числа в одномерном массиве. Она принимает на вход массив целых чисел и возвращает массив, где индекс соответствует значению элемента, а значение по индексу - количеству его вхождений. Первым параметром передаётся массив данных, вторым параметром можно указать минимальную длину выходного массива, а третьим - массив весов для взвешенного подсчёта.

Синтаксис

np.bincount(x, [weights=None], [minlength=0])

Пример

Давайте подсчитаем частоту значений в массиве из чисел:

import numpy as np arr = np.array([0, 1, 1, 2, 2, 2, 3, 4, 4]) res = np.bincount(arr) print(res)

Результат выполнения кода:

[1 2 3 1 2]

В полученном массиве элемент с индексом 0 равен 1 (значение 0 встретилось один раз), индекс 1 равен 2 (значение 1 встретилось дважды), и так далее.

Пример

Укажем минимальную длину выходного массива с помощью параметра minlength:

import numpy as np arr = np.array([2, 2, 3, 3, 3]) res = np.bincount(arr, minlength=5) print(res)

Результат выполнения кода:

[0 0 2 3 0]

Массив содержит частоты для значений от 0 до 4, несмотря на то, что минимальное значение в исходном массиве равно 2.

Пример

Выполним взвешенный подсчёт с использованием параметра weights:

import numpy as np x = np.array([0, 1, 1, 2, 2]) w = np.array([1.0, 0.5, 0.5, 0.2, 0.8]) res = np.bincount(x, weights=w) print(res)

Результат выполнения кода:

[1. 1. 1. ]

При взвешенном подсчёте вместо количества вхождений суммируются веса. Значение 0 встретилось один раз с весом 1.0, значение 1 - дважды с весами 0.5 и 0.5, значение 2 - дважды с весами 0.2 и 0.8.

Пример

Используем функцию для подсчёта частот бинарных меток в задаче классификации:

import numpy as np labels = np.array([0, 1, 0, 0, 1, 1, 1, 0]) class_counts = np.bincount(labels) print(class_counts)

Результат выполнения кода:

[4 4]

Массив показывает, что оба класса представлены равномерно - по 4 объекта в каждом.

Смотрите также

  • функцию histogram,
    которая строит гистограмму для непрерывных данных
  • функцию count_nonzero,
    которая подсчитывает ненулевые элементы в массиве
  • функцию digitize,
    которая разбивает данные на интервалы
  • функцию unique,
    которая находит уникальные элементы в массиве
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить