dpnp.bincount

dpnp.bincount(x, /, weights=None, minlength=0)[source]

Count number of occurrences of each value in array of non-negative ints.

For full documentation refer to numpy.bincount.

Parameters:
x{dpnp.ndarray, usm_ndarray}

Input 1-dimensional array with non-negative integer values.

weights{None, dpnp.ndarray, usm_ndarray}, optional

Weights, array of the same shape as x.

Default: None.

minlengthint, optional

A minimum number of bins for the output array.

Default: 0.

Returns:
outdpnp.ndarray of ints

The result of binning the input array. The length of out is equal to dpnp.max(x) + 1.

Warning

This function synchronizes in order to calculate binning edges. This may harm performance in some applications.

See also

dpnp.histogram

Compute the histogram of a data set.

dpnp.digitize

Return the indices of the bins to which each value

dpnp.unique

Find the unique elements of an array.

Examples

>>> import dpnp as np
>>> 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.max(x) + 1
array(True)

The input array needs to be of integer dtype, otherwise a TypeError is raised:

>>> np.bincount(np.arange(5, dtype=np.float32))
Traceback (most recent call last):
  ...
TypeError: x must be an integer array

A possible use of dpnp.bincount is to perform sums over variable-size chunks of an array, using the weights keyword.

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