为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标5832272 2020-02-04 15:50:48
在Python中,我有一个ndarray y 打印为array([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])我试图计算这个数组中有多少个0和多少个1。但是当我输入y.count(0)or时y.count(1),它说numpy.ndarray 对象没有属性 count我该怎么办?
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

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

非numpy方式:


使用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})


查看完整回答
反对 回复 2020-02-04
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

关于使用什么numpy.count_nonzero,像什么


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


查看完整回答
反对 回复 2020-02-04
?
白衣非少年

TA贡献1155条经验 获得超0个赞

就个人而言,我会去: (y == 0).sum()和(y == 1).sum()


例如


import numpy as np

y = np.array([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])

num_zeros = (y == 0).sum()

num_ones = (y == 1).sum()


查看完整回答
反对 回复 2020-02-04
  • 3 回答
  • 0 关注
  • 444 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信