Python中Counter计数统计
2017-02-11 17:23
609 查看
计数统计应用举例:
1.检测样本中某一值出现的次数
2.日志分析某一消息出现的频率
3.分析文件中相同字符串出现的概率等
实现:
1.dict
some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
count_frq = dict()
for item in some_data:
if item in count_frq:
count_frq[item] += 1
else:
count_frq[item] = 1
print count_frq
{'a': 3, 2: 1, 'b': 1, 4: 2, 5: 2, 7: 1, '2': 2, 'z': 1, 'd': 1}
2.defaultdict
>>> from collections import defaultdict
>>> some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
>>> count_frq = defaultdict(int)
>>> for item in some_data:
... count_frq[item] +=1
...
>>> print count_frq
defaultdict(<type 'int'>, {'a': 3, 2: 1, 'b': 1, 4: 2, 5: 2, 7: 1, '2': 2, 'z': 1, 'd': 1})
3.使用set和list
>>> some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
>>> count_set = set(some_data)
>>> count_list = []
>>> for item in count_set:
... count_list.append((item,some_data.count(item)))
...
>>> print count_list
[('a', 3), (2, 1), ('b', 1), (4, 2), (5, 2), (7, 1), ('2', 2), ('z', 1), ('d', 1)]
4.使用collections.Counter
>>> from collections import Counter
>>> some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
>>> print Counter(some_data)
Counter({'a': 3, 4: 2, 5: 2, '2': 2, 2: 1, 'b': 1, 7: 1, 'z': 1, 'd': 1})
Counter类是一个容器对象,属于字典类的子类,用于统计散列对象,支持集合操作+,-,&,|,其中&和|操作分别返回两个Counter对象各元素的最小值和最大值。
3种初始化方式:
Counter("success") #可迭代对象
Counter(s=3,c=2,e=1,u=1) #关键字参数
Counter({"s":3,"c":2,"u":1,"e":1}) #字典
方法:
1.elements()方法获取Counter中key值
>>> list(Counter(some_data).elements())
['a', 'a', 'a', 2, 'b', 4, 4, 5, 5, 7, '2', '2', 'z', 'd']
2.most_common()方法找出前N个出现频率最高的元素以及对应的次数。
>>> Counter(some_data).most_common(2)
[('a', 3), (4, 2)]
3.update()方法更新被统计对象的元素
>>> c = Counter("success")
>>> c.update("successfully")
>>> c
Counter({'s': 6, 'c': 4, 'u': 3, 'e': 2, 'l': 2, 'f': 1, 'y': 1})
1.检测样本中某一值出现的次数
2.日志分析某一消息出现的频率
3.分析文件中相同字符串出现的概率等
实现:
1.dict
some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
count_frq = dict()
for item in some_data:
if item in count_frq:
count_frq[item] += 1
else:
count_frq[item] = 1
print count_frq
{'a': 3, 2: 1, 'b': 1, 4: 2, 5: 2, 7: 1, '2': 2, 'z': 1, 'd': 1}
2.defaultdict
>>> from collections import defaultdict
>>> some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
>>> count_frq = defaultdict(int)
>>> for item in some_data:
... count_frq[item] +=1
...
>>> print count_frq
defaultdict(<type 'int'>, {'a': 3, 2: 1, 'b': 1, 4: 2, 5: 2, 7: 1, '2': 2, 'z': 1, 'd': 1})
3.使用set和list
>>> some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
>>> count_set = set(some_data)
>>> count_list = []
>>> for item in count_set:
... count_list.append((item,some_data.count(item)))
...
>>> print count_list
[('a', 3), (2, 1), ('b', 1), (4, 2), (5, 2), (7, 1), ('2', 2), ('z', 1), ('d', 1)]
4.使用collections.Counter
>>> from collections import Counter
>>> some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
>>> print Counter(some_data)
Counter({'a': 3, 4: 2, 5: 2, '2': 2, 2: 1, 'b': 1, 7: 1, 'z': 1, 'd': 1})
Counter类是一个容器对象,属于字典类的子类,用于统计散列对象,支持集合操作+,-,&,|,其中&和|操作分别返回两个Counter对象各元素的最小值和最大值。
3种初始化方式:
Counter("success") #可迭代对象
Counter(s=3,c=2,e=1,u=1) #关键字参数
Counter({"s":3,"c":2,"u":1,"e":1}) #字典
方法:
1.elements()方法获取Counter中key值
>>> list(Counter(some_data).elements())
['a', 'a', 'a', 2, 'b', 4, 4, 5, 5, 7, '2', '2', 'z', 'd']
2.most_common()方法找出前N个出现频率最高的元素以及对应的次数。
>>> Counter(some_data).most_common(2)
[('a', 3), (4, 2)]
3.update()方法更新被统计对象的元素
>>> c = Counter("success")
>>> c.update("successfully")
>>> c
Counter({'s': 6, 'c': 4, 'u': 3, 'e': 2, 'l': 2, 'f': 1, 'y': 1})
相关文章推荐
- Python:使用Counter进行计数统计及collections模块
- Python:使用Counter进行计数统计及collections模块
- python学习:counter计数
- 计数时使用Counter计数对象 分类: python 2013-01-18 16:11 163人阅读 评论(0) 收藏
- python中统计计数的几种方法
- Python Counter()计数工具
- Python使用collections的Counter类对字符串、列表、字典的数据元素进行计数
- Python中使用Counter进行字典创建以及key数量统计
- python学习——Counter计数方法
- [python]使用Counter统计文章中出现频率最高的单词
- python 2-3 如何统计序列中元素的出现频度--collections.Counter
- python/pandas/Numpy数据分析-统计描述,唯一值,值计数
- python 使用Counter统计列表中元素的频度
- python使用Collections.Counter进行计数
- Python Counter()计数工具
- 【Python学习】Counter()计数工具
- Python中使用Counter进行字典创建以及key数量统计的方法
- python 利用dictionary的get( ) 方法做计数统计
- Python统计列表中的重复项出现的次数(伪原创)
- python写的统计PYTHON文件的(代码行数,空行数,注释行数)小程序