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 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
Python操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
Python中str.join()简单用法示例
Mar 20 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
python实现决策树分类
Aug 30 Python
Python enumerate函数功能与用法示例
Mar 01 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
如何在PHP中使用Oracle数据库(3)
2006/10/09 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
node.js ws模块搭建websocket服务端的方法示例
2019/04/25 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
python实现在windows下操作word的方法
2015/04/28 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
python字典改变value值方法总结
2019/06/21 Python
浅谈python出错时traceback的解读
2020/07/15 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
python 利用toapi库自动生成api
2020/10/19 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
英国袜子店:Sock Shop
2017/01/11 全球购物
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
仓库文员岗位职责
2014/04/06 职场文书
无传销社区工作方案
2014/05/13 职场文书
支部书记四风对照材料
2014/08/28 职场文书
上课说话检讨书
2015/01/27 职场文书
五一放假通知怎么写
2015/08/18 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL