如何计算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 0
s and how many 1
s 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})