Python 统计序列中元素的出现频度


Posted in Python onApril 26, 2022

1、如何统计序列中元素的出现频度

实际案例:

  • (1)某随机序列[12, 5, 6, 4, 6, 5, 5, 7, ...] 中找到出现次数最高的3个元素,它们出现次数是多少?
  • (2)对某英文文章的单词,进行词频统计,找到出现次数最高的10个单词,它们出现次数是多少?

解决方案:

使用collections.Counter对象

将序列传入Counter的构造器,得到Counter对象是元素频度的字典。

Counter.most_common(n)方法得到频度最高的n个元素的列表。

2、代码演示

(1)某随机序列 [12, 5, 6, 4, 6, 5, 5, 7, ...] 中找到出现次数最高的3个元素,它们出现次数是多少?

from random import randint
 
# 利用列表解析生成随机序列
data = [randint(0, 20) for _ in range(30)]
print(data)
# 方法1:
'''
最终的统计结果肯定是一个字典,如:{2: 5, 4:9},
以data中每一个元素作为字典的键,0作为初始值,创建这样一个字典
'''
c = dict.fromkeys(data, 0)
print(c)
# 对data进行迭代,进行统计
for x in data:
    c[x] += 1
print(c)
# 根据字典的值对字典项进行排序,并截取前3个元素
sort_dict = sorted(c.items(), key=lambda item: item[1], reverse=True)[0:3]
print(sort_dict)
    
# 方法2:
from collections import Counter
# 直接将序列传给Counter构造器
c2 = Counter(data)
print(c2)
# 直接使用对象的most_common()方法直接找到频度最高3个
print(c2.most_common(3))    

(2)对某英文文章的单词,进行词频统计,找到出现次数最高的10个单词,它们出现次数是多少?

from collections import Counter
# 导入正则表达式模块
import re
 
# 读取整个文件内容作为字符串
txt = open('word.txt').read()
print(txt)
# 对词频进行统计,首先需要进行分割把每一个字取出来
# 用非字母的字符作为分割,然后传给Counter()进行统计
c3 = Counter(re.split('\W+', txt))
# 使用most_common()选取10个频度最高单词
print(c3.most_common(10))

到此这篇关于Python统计序列和文件中元素的频度的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
Python3基础之list列表实例解析
Aug 13 Python
用Python的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 Python
Flask框架WTForm表单用法示例
Jul 20 Python
pycharm创建一个python包方法图解
Apr 10 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
May 26 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
python编程的核心知识点总结
Feb 08 Python
Python matplotlib安装以及实现简单曲线的绘制
Python爬虫 简单介绍一下Xpath及使用
分享python函数常见关键字
Apr 26 #Python
python和Appium的移动端多设备自动化测试框架
Apr 26 #Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 #Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
You might like
PHP数据缓存技术
2007/02/14 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP实现验证码校验功能
2017/11/16 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
JS处理VBArray的函数使用说明
2008/05/11 Javascript
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
numpy 声明空数组详解
2019/12/05 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
python中yield的用法详解
2021/01/13 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
2014年中班元旦活动方案
2014/02/14 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
学校远程教育工作总结
2015/08/11 职场文书
比较node.js和Deno
2021/04/27 Javascript
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript