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 相关文章推荐
通过C++学习Python
Jan 20 Python
windows系统下Python环境搭建教程
Mar 28 Python
浅谈python 里面的单下划线与双下划线的区别
Dec 01 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
Django实现简单网页弹出警告代码
Nov 15 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
django的autoreload机制实现
Jun 03 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
Mar 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 无限级数据JSON格式及JS解析
2010/07/17 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
PHP7 windows支持
2021/03/09 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
js 操作符实例代码
2009/10/24 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
brook javascript框架介绍
2011/10/10 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
Flask之flask-script模块使用
2018/07/26 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
python打包多类型文件的操作方法
2020/09/21 Python
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
销售人员自我评价
2014/02/01 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
霸气队列口号
2014/06/18 职场文书
大学班长竞选稿
2015/11/20 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android