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 相关文章推荐
django模型中的字段和model名显示为中文小技巧分享
Nov 18 Python
Python中强大的命令行库click入门教程
Dec 26 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
用Python实现数据的透视表的方法
Nov 16 Python
利用python计算时间差(返回天数)
Sep 07 Python
Python PyPDF2模块安装使用解析
Jan 19 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
Jun 11 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字符串 ==比较运算符的副作用
2009/10/21 PHP
PHP自定义函数收代码
2010/08/01 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
浅析node.js中close事件
2014/11/26 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
php使用递归与迭代实现快速排序示例
2014/01/23 Python
Python实现备份文件实例
2014/09/16 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
演讲稿的格式及范文
2014/08/22 职场文书
民用住房租房协议书
2014/10/29 职场文书
员工评语范文
2014/12/31 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android