How to count the occurrence of certain item in an ndarray? How to count the occurrence of certain item in an ndarray? python python

How to count the occurrence of certain item in an ndarray?


a = numpy.array([0, 3, 0, 1, 0, 1, 2, 1, 0, 0, 0, 0, 1, 3, 4])unique, counts = numpy.unique(a, return_counts=True)dict(zip(unique, counts))# {0: 7, 1: 4, 2: 1, 3: 2, 4: 1}

Non-numpy way:

Use collections.Counter;

import collections, numpya = numpy.array([0, 3, 0, 1, 0, 1, 2, 1, 0, 0, 0, 0, 1, 3, 4])collections.Counter(a)# Counter({0: 7, 1: 4, 3: 2, 2: 1, 4: 1})


What about using numpy.count_nonzero, something like

>>> import numpy as np>>> y = np.array([1, 2, 2, 2, 2, 0, 2, 3, 3, 3, 0, 0, 2, 2, 0])>>> np.count_nonzero(y == 1)1>>> np.count_nonzero(y == 2)7>>> np.count_nonzero(y == 3)3


Personally, I'd go for:(y == 0).sum() and (y == 1).sum()

E.g.

import numpy as npy = np.array([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])num_zeros = (y == 0).sum()num_ones = (y == 1).sum()