python 频数表_python里计算每个数字出现的频数

我有一个长array对象(numpy里的),大概是30w个整数(0-9),现在要统计每个数字出现的百分比,请问有没有什么高效的算法?我现在使用最原始的:defcal(classfier):'''返计算并返回一...

我有一个长array对象(numpy里的),大概是30w个整数(0-9),现在要统计每个数字出现的百分比,请问有没有什么高效的算法?

我现在使用最原始的:

def cal(classfier):

'''

返计算并返回一个长度为8的向量,表示每种颜色的百分比

'''

n0 = 0.0

n1 = 0.0

n2 = 0.0

n3 = 0.0

n4 = 0.0

n5 = 0.0

n6 = 0.0

n7 = 0.0

l = len(classfier)

for i in range(l-1):

if classfier[i] == 0:

n0 = n0 + 1

elif classfier[i] == 1:

n1= n1 + 1

elif classfier[i] == 2:

n2 = n2 + 1

elif classfier[i] == 3:

n3 = n3 + 1

elif classfier[i] == 4:

n4 = n4 + 1

elif classfier[i] == 5:

n5 = n5 + 1

elif classfier[i] == 6:

n6 = n6 + 1

else:

n7 = n7 + 1

vector = [100 * n0/l,100 * n1/l,100 * n2/l,100 * n3/l,100 * n4/l,100 * n5/l,100 * n6/l,100 * n7/l]

print 'Col0: ', round(100 * n0/l,4), '%'

print 'Col1: ', round(100 * n1/l,4), '%'

print 'Col2: ', round(100 * n2/l,4), '%'

print 'Col3: ', round(100 * n3/l,4), '%'

print 'Col4: ', round(100 * n4/l,4), '%'

print 'Col5: ', round(100 * n5/l,4), '%'

print 'Col6: ', round(100 * n6/l,4), '%'

print 'Col7: ', round(100 * n7/l,4), '%\n'

return(vector)

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值