Spec-Zone.ru › NumPy 1.21

numpy.bincount

numpy.bincount(x, weights=None, minlength=0)

Подсчёт числа вхождений каждого значения в массиве неотрицательных целых чисел.

Количество ячеек (размером 1) на единицу больше, чем наибольшее значение в x. Если minlength указано, в выходном массиве будет, как минимум, столько ячеек (хотя оно будет больше, если это необходимо, в зависимости от содержимого x). Каждая ячейка указывает на число вхождений своего индексного значения в x. Если weights указано, входной массив взвешивается им, т.е. если значение n найдено в позиции i, out[n] += weight[i] вместо out[n] += 1.

Параметры
xarray_like, 1-мерный, неотрицательные целые числа

Входной массив.

weightsarray_like, необязательно

Веса, массив той же формы, что и x.

minlengthint, необязательно

Минимальное количество ячеек для выходного массива.

Введено в версии 1.6.0.

Возвращает
outndarray целых чисел

Результат распределения входного массива. Длина out равна np.amax(x)+1.

Возбуждает
ValueError

Если входной массив не 1-мерный, или содержит элементы с отрицательными значениями, или если minlength отрицательное.

TypeError

Если тип входного массива — float или complex.

См. также

histogram, digitize, unique

Примеры

>>> np.bincount(np.arange(5))
array([1, 1, 1, 1, 1])
>>> np.bincount(np.array([0, 1, 1, 3, 2, 1, 7]))
array([1, 3, 1, 1, 0, 0, 0, 1])
>>> x = np.array([0, 1, 1, 3, 2, 1, 7, 23])
>>> np.bincount(x).size == np.amax(x)+1
True

Входной массив должен иметь тип данных integer, в противном случае возникает ошибка TypeError:

>>> np.bincount(np.arange(5, dtype=float))
Traceback (most recent call last):
  ...
TypeError: Cannot cast array data from dtype('float64') to dtype('int64')
according to the rule 'safe'

Возможным применением bincount является выполнение сумм по переменным блокам массива, используя ключевое слово weights.

>>> w = np.array([0.3, 0.5, 0.2, 0.7, 1., -0.6]) # weights
>>> x = np.array([0, 1, 1, 2, 2, 2])
>>> np.bincount(x,  weights=w)
array([ 0.3,  0.7,  1.1])

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.bincount.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API