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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
python中利用Future对象异步返回结果示例代码
Sep 07 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
Pytorch之保存读取模型实例
Dec 30 Python
Python 动态变量名定义与调用方法
Feb 09 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
Python暴力破解Mysql数据的示例
Nov 09 Python
利用Python过滤相似文本的简单方法示例
Feb 03 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读取数据库信息的几种方法
2008/05/24 PHP
PHP在字符断点处截断文字的实现代码
2011/04/21 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
用Juery网页选项卡实现代码
2011/06/13 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python单例模式实例分析
2015/01/14 Python
python自然语言编码转换模块codecs介绍
2015/04/08 Python
使用python为mysql实现restful接口
2018/01/05 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
Python configparser模块应用过程解析
2020/08/14 Python
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
校园自助餐厅的创业计划书
2013/12/26 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
怎样填写就业意向
2014/04/02 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
爱与责任演讲稿
2014/05/20 职场文书
植树造林的宣传标语
2014/06/23 职场文书
小学班主任个人总结
2015/03/03 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python