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 相关文章推荐
对于Python异常处理慎用“except:pass”建议
Apr 02 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
Django 接收Post请求数据,并保存到数据库的实现方法
Jul 12 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
django 单表操作实例详解
Jul 30 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
如何用python处理excel表格
Jun 09 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 Python
详解如何用Python实现感知器算法
Jun 18 Python
Python多个MP4合成视频的实现方法
Jul 16 Python
详解Python flask的前后端交互
Mar 31 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/07/07 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
python如何把嵌套列表转变成普通列表
2018/03/20 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
python实现名片管理器的示例代码
2019/12/17 Python
Python list运算操作代码实例解析
2020/01/20 Python
Python sublime安装及配置过程详解
2020/06/29 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
python脚本定时发送邮件
2020/12/22 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
c/c++某大公司的两道笔试题
2014/02/02 面试题
省级四好少年事迹材料
2014/01/25 职场文书
社区国庆节活动方案
2014/02/05 职场文书
小学生常见病防治方案
2014/06/06 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
债务纠纷代理词
2015/05/25 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
小学校园广播稿
2015/08/18 职场文书
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android