On this page
numpy.bincount
- numpy.bincount(x, /, weights=None, minlength=0)
-
Count number of occurrences of each value in array of non-negative ints.
The number of bins (of size 1) is one larger than the largest value in
x. Ifminlengthis specified, there will be at least this number of bins in the output array (though it will be longer if necessary, depending on the contents ofx). Each bin gives the number of occurrences of its index value inx. Ifweightsis specified the input array is weighted by it, i.e. if a valuenis found at positioni,out[n] += weight[i]instead ofout[n] += 1.- Parameters
-
- xarray_like, 1 dimension, nonnegative ints
-
Input array.
- weightsarray_like, optional
-
Weights, array of the same shape as
x. - minlengthint, optional
-
A minimum number of bins for the output array.
New in version 1.6.0.
- Returns
-
- outndarray of ints
-
The result of binning the input array. The length of
outis equal tonp.amax(x)+1.
- Raises
-
- ValueError
-
If the input is not 1-dimensional, or contains elements with negative values, or if
minlengthis negative. - TypeError
-
If the type of the input is float or complex.
Examples
>>> 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 TrueThe input array needs to be of integer dtype, otherwise a TypeError is raised:
>>> 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'A possible use of
bincountis to perform sums over variable-size chunks of an array, using theweightskeyword.>>> 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.23/reference/generated/numpy.bincount.html