zoukankan      html  css  js  c++  java
  • python之计数统计

    前言

    计数统计,简单的说就是统计某一项出现的次数。实际应用中很多需求都需要用到这个模型,如检测样本中某一值出现的次数、日志分析某一消息出现的频率、分析文件中相同字符串出现的概率等等。以下是实现的不同方式。

    实现方式:

    • 使用dict
     1 >>> data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
     2 >>> count_1 = dict()
     3 >>> for item in data:
     4 ...     if item in count_1:
     5 ...             count_1[item] +=1
     6 ...     else:
     7 ...             count_1[item] = 1
     8 ...
     9 >>> print count_1
    10 {'a': 3, 2: 1, 'b': 1, 4: 2, 5: 2, 7: 1, '2': 2, 'z': 1, 'd': 1}
    • 使用set和list
    1 >>> data
    2 ['a', '2', 2, 4, 5, '2', 'b', 4, 7, 'a', 5, 'd', 'a', 'z']
    3 >>> count_set = set(data)
    4 >>> count_list = []
    5 >>> for item in count_set:
    6 ...     count_list.append({item:data.count(item)})
    7 ...
    8 >>> print count_list
    9 [{'a': 3}, {2: 1}, {'b': 1}, {4: 2}, {5: 2}, {7: 1}, {'2': 2}, {'z': 1}, {'d': 1}]
    • 使用collections.Counter
     1 >>> data
     2 ['a', '2', 2, 4, 5, '2', 'b', 4, 7, 'a', 5, 'd', 'a', 'z']
     3 >>> from collections import Counter
     4 >>> print Counter(data)
     5 Counter({'a': 3, 4: 2, 5: 2, '2': 2, 2: 1, 'b': 1, 7: 1, 'z': 1, 'd': 1})
     6 >>>
     7 >>> list(Counter(data).elements())  #使用elements()方法获取Counter中的key值
     8 ['a', 'a', 'a', 2, 'b', 4, 4, 5, 5, 7, '2', '2', 'z', 'd']
     9 >>>
    10 >>> Counter(data).most_common(2)  #使用most_common()方法可以找出前N个出现频率最高的元素以及它们对应的次数
    11 [('a', 3), (4, 2)]
    12 >>>
    13 >>> (Counter(data))['y']  #当访问不存在的元素时,默认返回为0而不是抛出KeyError异常
    14 0

    Counter其他方法:

     1 >>> c=Counter("success")
     2 >>> print c
     3 Counter({'s': 3, 'c': 2, 'e': 1, 'u': 1})
     4 >>>
     5 >>> c.update("successful")  #update()方法用于被统计对象元素的更新,原有Counter计数器对象与新增元素的统计计数值相加
     6 >>> print c
     7 Counter({'s': 6, 'c': 4, 'u': 3, 'e': 2, 'f': 1, 'l': 1})
     8 >>>
     9 >>> c.subtract("successful")  #subtract()方法用于实现计数器对象中元素统计值相减,输入和输出的统计值允许为0或者负数
    10 >>> print c
    11 Counter({'s': 3, 'c': 2, 'e': 1, 'u': 1, 'f': 0, 'l': 0})
  • 相关阅读:
    final和abstract能否共同修饰一个类
    Java三大变量分别是类变量、实例变量和局部变量
    变量的就近原则
    成员变量和局部变量
    初始化集合对象,通过contains判断是否为null
    三目表达式运算符优先级分析
    京东物流POP入仓商品关联笔记
    京东POP入仓操作笔记
    闪购活动报名笔记
    excel常用的快捷键大全
  • 原文地址:https://www.cnblogs.com/sunshine-blog/p/9339894.html
Copyright © 2011-2022 走看看