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实现猜数字游戏(无重复数字)示例分享
Mar 29 Python
python使用pymysql实现操作mysql
Sep 13 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python实现的多进程和多线程功能示例
May 29 Python
python数据批量写入ScrolledText的优化方法
Oct 11 Python
解决Django生产环境无法加载静态文件问题的解决
Apr 23 Python
python中Lambda表达式详解
Nov 20 Python
Python 静态方法和类方法实例分析
Nov 21 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 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
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
php使用百度天气接口示例
2014/04/22 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python处理数据,存进hive表的方法
2018/07/04 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
python 五子棋如何获得鼠标点击坐标
2019/11/04 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
python中count函数知识点浅析
2020/12/17 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
2014年基层党组织公开承诺书
2014/03/29 职场文书
园林系毕业生求职信
2014/06/23 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript
世界十大狙击步枪排行榜
2022/03/20 杂记
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL