python里计算每个数字出现的频数我有一个长array对象(numpy里的),大概是30w个整数(0-9),现在要统计每个数字出现的百分比,请问有没有什么高效的算法?我现在使用最原始的:defcal(classfier):'
python里计算每个数字出现的频数
我有一个长array对象(numpy里的),大概是30w个整数(0-9),现在要统计每个数字出现的百分比,请问有没有什么高效的算法?
我现在使用最原始的:
defcal(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)
foriinrange(l-1):
ifclassfier[i]==0:
x05n0=n0+1
elifclassfier[i]==1:
x05n1=n1+1
elifclassfier[i]==2:
x05n2=n2+1
elifclassfier[i]==3:
x05n3=n3+1
elifclassfier[i]==4:
x05n4=n4+1
elifclassfier[i]==5:
x05n5=n5+1
elifclassfier[i]==6:
x05n6=n6+1
else:
x05n7=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)