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 相关文章推荐
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
python pandas 时间日期的处理实现
Jul 30 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
Nov 25 Python
Pytorch 保存模型生成图片方式
Jan 10 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
python实现四人制扑克牌游戏
Apr 22 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
Python如何测试stdout输出
Aug 10 Python
Python读写锁实现实现代码解析
Nov 28 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
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
js arguments对象应用介绍
2012/11/28 Javascript
解释&&和||在javascript中的另类用法
2014/07/28 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
Node.js之readline模块的使用详解
2019/03/25 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
实例讲解python中的序列化知识点
2018/10/08 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
python打造爬虫代理池过程解析
2019/08/15 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
安踏广告词改编版
2014/03/21 职场文书
社会实践活动总结范文
2014/07/03 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
租赁协议书
2015/01/27 职场文书
法律意见书范文
2015/05/20 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书