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)基于内容的协同过滤 基于模型的协同过滤算法 扩展优缺点 参考 推荐系统之神经协同过滤 原理 基于邻域的协同过滤算法 基于邻域的协同过滤算法又包括…

在K8S中Longhorn存储

Longhorn 是用于 Kubernetes 的轻量级、可靠且功能强大的分布式块存储系统。 Longhorn 使用容器(containers)和微服务(microservices)实现分布式块存储。 Longhorn 为每个块设备卷(device volume)创建一个专用的存储控制器(storage controller), 并跨存储在多个节点…

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

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

Java 8 Lambda表达式:基本语法及在集合中的应用

目录 Lambda表达式的基本语法 lambda表达式在集合中的应用 Lambda表达式的基本语法 (参数列表) -> { 函数体 } 其中: 参数列表:包含Lambda表达式的参数。如果参数只有一个,则括号可以省略。如果参数没有,则必须保留空括号。-…

HarmonyOS卡片生命周期管理

卡片生命周期管理 创建ArkTS卡片,需实现FormExtensionAbility生命周期接口。 在EntryFormAbility.ts中,导入相关模块。 import formInfo from ohos.app.form.formInfo; import formBindingData from ohos.app.form.formBindingData; import FormExtensi…

【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配置收费价格 阿里…

SpringBoot中 Mybatis 的xml映射文件配置

目录 1.依赖 2.示例代码 2.1不带resultMap标签示例 2.1带resultMap标签示例 3.resultMap标签不加的情况说明 1.依赖 在pom.xml文件中引入依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-t…

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

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

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

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

【每日前端面经】2023-02-27

题目来源: 牛客 CSS盒模型 CSS中的盒子包括margin|border|padding|content四个部分&#xff0c;对于标准盒子模型&#xff08;content-box&#xff09;的widthcontent&#xff0c;但是对于IE盒子模型&#xff08;border-box&#xff09;的widthcontentborder2padding2 CSS选…

C# 中的装箱(boxing)和拆箱(unboxing)

在 C# 中&#xff0c;装箱&#xff08;boxing&#xff09;和拆箱&#xff08;unboxing&#xff09;是用来在值类型&#xff08;如 int、double 等&#xff09;和引用类型&#xff08;如 object&#xff09;之间进行转换的过程。 装箱&#xff08;Boxing&#xff09;&#xff1…

ROS 图像预处理

为了使机械臂从复杂的场景中准确地识别出目标物体&#xff0c;首先要对机械臂相机采集的图像信息进行系列的预处理操作&#xff0c;图像预处理的目的就是为了方便提取采集图像的特征点信息。 1、图像灰度化 图像灰度化处理是一种将彩色图像转换为灰度图像的过程&#xff0c;目…

shell中正则表达式讲解

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

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

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

大语言模型LLM微调技术深度解析:Fine-tuning、Adapter-Tuning与Prompt Tuning的作用机制、流程及实践应用(LLM系列08)

文章目录 大语言模型LLM微调技术深度解析&#xff1a;Fine-tuning、Adapter-Tuning与Prompt Tuning的作用机制、流程及实践应用&#xff08;LLM系列08&#xff09;Fine-tuningAdapter-TuningPrompt Tuning策略对比与应用场景 大语言模型LLM微调技术深度解析&#xff1a;Fine-tu…

【vue】computed 、 watch、method 的区别

三个关键字【惰性】【缓存】【异步】 计算属性 computed 计算属性返回的值不属于 data&#xff0c;但是基于data声明的值会根据它们所依赖的数据的变化而自动重新计算惰性计算 初始化不会执行&#xff0c;只有在第一次访问时才会被计算render 函数执行时&#xff0c;会触发计算…

Gemma

Gemma 1.使用2.RAG3.LoRA3.1LoRA分类任务3.2LoRA中文建模任务 1.使用 首先是去HF下载模型&#xff0c;但一直下载不了&#xff0c;所以去了HF镜像网站&#xff0c;下载gemma需要HF的Token&#xff0c;按照步骤就可以下载。代码主要是Kaggle论坛里面的分享内容。 huggingface-…

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

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

RTCA DO-178C 机载系统和设备认证中的软件注意事项-附录 B

ANNEX B 附录 B 缩略语和术语表 ACRONYMS AND GLOSSARY OF TERMS 缩写 Acronym 释义 Meaning 译文 Translate ARP Aerospace Recommended Practice 航空航天推荐做法 ATM Air Traffic Management 空中交通管理 CAST Certification Authorities Software Team 认证机…