Python数据处理(三)-txt文件指定数据提取并可视化作图

系列文章:

1,20G文件,分类,放入不同文件,每个单独处理

2,数据的归类并处理

3,txt文件指定数据提取并可视化作图(本文)

4,.........

一,数据格式以及需求

         作为测试工程师,面对这种海量的数据,我们周末提取指定位置的数据并可视化其变化规律呢,excel当然是首选,方便快捷。但是那种几十万行甚至更多的数据的时候,手动操作就捉襟见肘了。

        于是我们需要python来自动化操作并完成。

         1,有的数据我们直接提取后不需要处理即可全部作图        

         2,有的数据,我们提取后,还需要分组(16,256等等),求最大最小,以及平均值再作图

二,分布实现需求

这个需求比较简单,思路简单清晰。

1,我们需要时间或者其他数据,正则表达式提取(提取方式有很多种,正则表达式只是其一)

2,提取的数据存入python的数据结构--列表(就能满足功能要求)

3,数据处理

4,作图

三,各个步骤

一,提取数据后直接作图

import matplotlib.pyplot as plt# 准备存储提取数据的列表
times = []# 打开文本文件并读取每一行
with open('./log/be_cycling_tBE.txt', 'r') as file:for line in file:# 找到"Time=&"和"&mS"之间的字符串start_index = line.find("Time=&")end_index = line.find("&mS", start_index)#start_index = line.find("&]=&")#end_index = line.find("&mS=", start_index)if start_index != -1 and end_index != -1:# 提取时间数据time_data = line[start_index + len("Time=&"):end_index].strip()# 将时间数据转换为数字并添加到列表中try:time_value = float(time_data)times.append(time_value)except ValueError:# 数据转换失败时忽略错误continue# 使用matplotlib绘制散点图
plt.scatter(range(len(times)), times, marker='.', color='blue')# 设置图表标题和轴标签
plt.title('Venezia_100K_blk64_time')
plt.xlabel('Line Number')
plt.ylabel('Time (ms)')# 显示图表
plt.show()

注释:

1,打开指定文件,并申明列表

2,for循环读取每一行数据,并作相应的数据处理

3,正则表达式,提取我们需要的指定数据并添加到列表中,同时获取列表的长度方便后面作图

4,直接用python的库函数,绘制散点图,没有对应库的,打开终端安装

5,作图时可在图上写出一些标记

 二,提取数据后处理后再作图

         这个就是提取完数据后需要处理过后再作图,比如下面的是提取完数据后,以256个数据为一组,求平均值和最值。

import matplotlib.pyplot as pltdef process_chunk(chunk):"""辅助函数,用于处理和分析一个数据块 (即16个值)."""# 将字符串值转换为浮点数float_chunk = [float(x) for x in chunk]# 计算最大值、最小值和平均值max_val = max(float_chunk)min_val = min(float_chunk)avg_val = sum(float_chunk) / len(float_chunk)return (max_val, min_val, avg_val)# 初始化列表用于存储各个分组的最大值、最小值和平均值
max_vals, min_vals, avg_vals = [], [], []# 定义计数器以跟踪当前处理的行数
counter = 0
# 定义一个临时列表存储当前正在处理的值组
current_chunk = []# 打开文本文件并逐行读取
with open('./log/PP_TIME.txt', 'r') as file:for line in file:# 查找 "&]=&" 和 "&mS" 之间的字符串start_index = line.find("&]=&")end_index = line.find("&mS", start_index)if start_index != -1 and end_index != -1:# 提取字符串并去掉空格time_data = line[start_index + len("&]=&"):end_index].strip()# 尝试将字符串转换为浮点数try:current_chunk.append(time_data)except ValueError:# 当转换失败时,忽略这个数据continue# 检查是否已收集了16个数据if len(current_chunk) == 256:max_val, min_val, avg_val = process_chunk(current_chunk)max_vals.append(max_val)min_vals.append(min_val)avg_vals.append(avg_val)# 清空当前的值组,为下一组数据做准备current_chunk = []# 更新计数器counter += 1# 如果需要可以打印进度# print(f'Processed {counter} lines...')# 散点图数据为每组的最大值、最小值和平均值
plt.scatter(range(len(max_vals)), max_vals, color='red', label='Max', marker='o')
plt.scatter(range(len(min_vals)), min_vals, color='blue', label='Min', marker='x')
plt.scatter(range(len(avg_vals)), avg_vals, color='green', label='Avg', marker='^')# 设置图表的标题和图例
plt.title('XXXXXXXXXXXXXXXXXXX')
plt.xlabel('Group Number')
plt.ylabel('Value')
plt.legend()# 显示图表
plt.show()

注释

1,定义一个小函数,子函数,用来单独处理每一组的数据,最大最小和平均值

2,回归上面的问题中,打开文件并申明定义列表,循环读取每一行

3,正则表达式,提取指定对应数据

4,用前面定义的子函数处理列表中的数据,每一组处理完记得清空以便于下一组

5,作图,同时可以加上需要的各种坐标信息,标题等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【推荐算法系列十六】:协同过滤

文章目录 参考原理基于邻域的协同过滤算法基于用户的协同过滤(User-Based Collaborative Filtering)基于内容的协同过滤 基于模型的协同过滤算法 扩展优缺点 参考 推荐系统之神经协同过滤 原理 基于邻域的协同过滤算法 基于邻域的协同过滤算法又包括…

在 Android 运行 GNU/Linux 二进制程序 (proot)

在 GNU/Linux 系统上运行 Android 应用比较容易 (比如 waydroid), 但是反过来就很麻烦了. Android 虽然也使用 Linux 内核 (kernel), 但是系统环境和一般的 GNU/Linux 系统 (比如 ArchLinux, Debian, Ubuntu, Fedora, NixOS 等) 具有不可忽略的显著差异, 所以为 GNU/Linux 编译…

【React源码 - 调度任务循环EventLoop】

我们知道在React中有4个核心包、2个关键循环。而React正是在这4个核心包中运行,从输入到输出渲染到web端,主要流程可简单分为一下4步:如下图,本文主要是介绍两大循环中的任务调度循环。 4个核心包: react:…

4核8G服务器多少钱?腾讯云和阿里云哪家便宜?

4核8G云服务器多少钱一年?阿里云ECS服务器u1价格955.58元一年,腾讯云轻量4核8G12M带宽价格是646元15个月,阿腾云atengyun.com整理4核8G云服务器价格表,包括一年费用和1个月收费明细: 云服务器4核8G配置收费价格 阿里…

网站的安全防护需要注意哪些问题?有什么方法可以加固网站的防护

网站的安全防护,是一项复杂性、多方面的系统工程。现如今网络安全风险的增加,使得上至国家部门机关,小到个人博客,都有可能遭受网络安全问题。说到网络安全问题,比如:竞争最为激烈的游戏行业,从…

MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)

文章目录 一、InnoDB引擎逻辑储存结构二、架构——内存结构三、架构——磁盘结构四、架构——后台线程五、事务原理持久性:redo log。重做日志原子性:undo log。回滚日志 六、MVCC基本概念七、MVCC实现原理八、undo log日志 回滚日志,版本链九…

shell中正则表达式讲解

1. 概念 在进行程序设计的过程中,用户会不可避免地遇到处理某些文本的情况。有的 时候,用户还需要查找符合某些比较复杂规则的字符串。对于这些情况,如果 单纯依靠程序设计语言本身,则往往会使得用户通过复杂的代码来实现。但 是&…

在linux上不依赖于Nignx等服务器部署ASP.NET Core 7.0 WebAPI

笔者近期需要部署一款基于B/S架构的后端程序在linux的Debian发行版上,本文章以本次部署遇到的问题为线索,总结如何在Debian上部署ASP.NET Core7.0WebAPI应用程序。 在linux上不依赖于Nignx等服务器部署ASP.NET Core 7.0 WebAPI 1.先决条件2.应用发布3.部…

3D可视化项目,选择unity3D还是three.js,是时候挑明了。

2023-08-10 23:07贝格前端工场 Hi,我是贝格前端工场,在开发3D可视化项目中,是选择U3D还是three,js时,很多老铁非常的迷茫,本文给老铁们讲清楚该如何选择,欢迎点赞评论分享转发。 一、Unity3D和three.js简…

[Mac软件]Adobe Substance 3D Stager 2.1.4 3D场景搭建工具

应用介绍 Adobe Substance 3D Stager,您设备齐全的虚拟工作室。在这个直观的舞台工具中构建和组装 3D 场景。设置资产、材质、灯光和相机。导出和共享媒体,从图像到 Web 和 AR 体验。 处理您的最终图像 Substance 3D Stager 可让您在上下文中做出创造性…

网络原理——HTTPS

HTTPS是 在HTTP的基础上,引入了一个加密层(SSL)。 1. 为什么需要HTTPS 在我们使用浏览器下载一些软件时,相信大家都遇到过这种情况:明明这个链接显示的是下载A软件,点击下载时就变成了B软件,这种情况是运…

计算机设计大赛 深度学习手势检测与识别算法 - opencv python

文章目录 0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法 3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构 4 最后…

深入理解Python中的JSON模块:基础大总结与实战代码解析【第102篇—JSON模块】

深入理解Python中的JSON模块:基础大总结与实战代码解析 在Python中,JSON(JavaScript Object Notation)模块是处理JSON数据的重要工具之一。JSON是一种轻量级的数据交换格式,广泛应用于Web开发、API通信等领域。本文将…

WinForms中的Timer探究:Form Timer与Thread Timer的差异

WinForms中的Timer探究:Form Timer与Thread Timer的差异 在Windows Forms(WinForms)应用程序开发中,定时器(Timer)是一个常用的组件,它允许我们执行定时任务,如界面更新、周期性数据…

osi模型,tcp/ip模型(名字由来+各层介绍+中间设备介绍)

目录 网络协议如何分层 引入 osi模型 tcp/ip模型 引入 命名由来 介绍 物理层 数据链路层 网络层 传输层 应用层 中间设备 网络协议如何分层 引入 我们已经知道了网络协议是层状结构,接下来就来了解了解下网络协议如何分层 常见的网络协议分层模型是OSI模型 和 …

windows 连接 Ubuntu 失败 -- samba服务

1. windows10连接ubuntu的时候,提示不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接,中断与此服务器或共享资源的所有连接,然后再试一次 2. 换一台同事的电脑却又可以连上,我之前一直能用的,隔一段时间…

UE5 C++ 单播 多播代理 动态多播代理

一. 代理机制,代理也叫做委托,其作用就是提供一种消息机制。 发送方 ,接收方 分别叫做 触发点和执行点。就是软件中的观察者模式的原理。 创建一个C Actor作为练习 二.单播代理 创建一个C Actor MyDeligateActor作为练习 在MyDeligateAc…

【蓝桥杯】包子凑数(DP)

一.题目描述 二.输入描述 三.输出描述 四.问题分析 几个两两互质的数,最大公约数是1,最小公倍数是他们的乘积。 两个互质的数a和b最小不能表示的数就是(a-1)(b-1)-1,即,两个互质的数…

uniapp_微信小程序日历

一、需求要求这样 二、代码实现 <view class"calender" click"showriliall"><text class"lineText">探视日期&#xff1a;</text><text class"middleText">{{timerili}}</text><image src"/s…

Ubuntu服务器fail2ban的使用

作用&#xff1a;限制ssh远程登录&#xff0c;防止被人爆破服务器&#xff0c;封禁登录ip 使用lastb命令可查看到登录失败的用户及ip&#xff0c;无时无刻的不在爆破服务器 目录 一、安装fail2ban 二&#xff0c;配置fail2ban封禁ip的规则 1&#xff0c;进入目录并创建ssh…