python里计算每个数字出现的频数我有一个长array对象-查字典问答网
分类选择

来自曹斌的问题

  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)

1回答
2020-05-20 11:31
我要回答
请先登录
从飞云

  python3.3脚本,看看是否能给你点启示

  a=[1,2,5,1,2,3,5,6,6,5,4,6,4,2,0,8,9,7,4,1,1,2,2,2,2,2,2,2,2,3,3,3,2,5,2,5,8,5,5]

  count=len(a)

  myset=set(a)

  foriteminmyset:

  print(item,100*a.count(item)/count)

2020-05-20 11:32:31

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •