如何计算ndarray中某些项目的出现?

问题描述:

在Python中,我有一个ndarray y
打印为 array([0,0,0,1,0 ,1、1、0、0、0、0、1])

In Python, I have an ndarray y that is printed as array([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])

我正在尝试计算多少 0 s以及此数组中有多少 1 s个。

I'm trying to count how many 0s and how many 1s are there in this array.

但是当我键入 y.count(0) y.count(1 ),它表示

But when I type y.count(0) or y.count(1), it says


numpy.ndarray 对象没有属性 count

我该怎么办?

>>> 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}

非数字方式

使用 collections.Counter ;

>> import collections, numpy

>>> a = 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})