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的Django框架下使用django-tagging的教程
May 30 Python
python正则实现计算器功能
Dec 14 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
Selenium的使用详解
Oct 19 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
Python代码需要缩进吗
Jul 01 Python
深入了解Python 变量作用域
Jul 24 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 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
mysql limit查询优化分析
2008/11/12 PHP
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
php实现监听事件
2013/11/06 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
小程序实现多选框功能
2018/10/30 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python 编写简单网页服务器的实例
2018/06/01 Python
pygame实现打字游戏
2021/02/19 Python
Python高级property属性用法实例分析
2019/11/19 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
倩碧英国官网:Clinique英国
2018/08/10 全球购物
公司企业表扬信
2014/01/11 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
运动会宣传语
2015/07/13 职场文书
装修公司管理制度
2015/08/05 职场文书
2016党员党课心得体会
2016/01/07 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js