python 121数组求和为11

news/2025/3/11 9:41:51/文章来源:https://www.cnblogs.com/shirleysu90/p/18764175

每个时间戳对应1×21数组,将其求和为1×1

#!usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: Suyue
@file: lianxi.py
@time: 2025/03/11
@desc:
"""
import numpy as np
import re
import osdef calculate_concentration_clumnsum_intensity(concentration):"""雨滴谱数浓度 concentration:return: 求和 concentration_clumnsum (1×1),结果保留 2 位小数"""# 计算数浓度列求和,并保留 2 位小数concentration_clumnsum = round(np.sum(concentration), 2)  # 对整个数组求和return concentration_clumnsumdef read_concentrations_data(file_path):"""读取雨滴谱数浓度数据:param file_path: 输入文件路径:return: timestamps (时间戳列表), concentration_matrices (浓度矩阵列表,每个矩阵为1×21)"""timestamps = []concentration_matrices = []with open(file_path, 'r') as file:lines = file.readlines()i = 0while i < len(lines):# 读取时间戳line = lines[i].strip()if re.match(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}', line):timestamps.append(line)i += 1  # 移动到下一行# 初始化一个空列表来存储1×21数组的元素array_elements = []# 读取接下来的1行,每行包含21个数值if i < len(lines):row = lines[i].strip().split()# 检查当前行是否是时间戳(避免错误)if not re.match(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}', lines[i].strip()):row_elements = list(map(float, row))  # 将行数据转换为浮点数
                        array_elements.extend(row_elements)i += 1# 将一维列表转换为1×21的NumPy数组if len(array_elements) == 21:concentration = np.array(array_elements).reshape(1, 21)  # 转换为1×21的数组
                    concentration_matrices.append(concentration)else:# 如果数据不完整,跳过这个时间戳
                    timestamps.pop()else:# 如果当前行不是时间戳,则可能是空行或其他无效数据,跳过它i += 1return timestamps, concentration_matricesdef write_raindrop_concentration_clumnsum_to_file(timestamps, concentration_clumnsum, output_file_path):"""将时间戳和求和结果写入文件:param timestamps: 时间戳列表:param concentration_clumnsum: 求和结果列表(每个元素是一个标量值):param output_file_path: 输出文件路径"""with open(output_file_path, 'w') as file:for timestamp, sum_value in zip(timestamps, concentration_clumnsum):file.write(f"{timestamp}\n")file.write(f"{sum_value:.2f}\n")  # 保留 2 位小数file.write("\n")  # 每个时间戳的数据块之间加一个空行作为分隔# 批量处理多个文件夹
def batch_process_concentration_clumnsum_files(input_dir, output_dir):# 确保输出目录存在os.makedirs(output_dir, exist_ok=True)# 遍历输入目录中的所有TXT文件for filename in os.listdir(input_dir):if filename.endswith('.txt'):file_path = os.path.join(input_dir, filename)# 读取数据timestamps, concentration_matrices = read_concentrations_data(file_path)concentration_clumnsum_results = []  # 创建一个新的列表来存储降水强度结果for concentration in concentration_matrices:concentration_clumnsum_intensity = calculate_concentration_clumnsum_intensity(concentration)concentration_clumnsum_results.append(concentration_clumnsum_intensity)  # 将计算结果添加到新列表中# 构造输出文件路径output_file_path = os.path.join(output_dir, f"{os.path.splitext(filename)[0]}_one.txt")# 将结果写入文件
            write_raindrop_concentration_clumnsum_to_file(timestamps, concentration_clumnsum_results, output_file_path)# 输入和输出目录
input_dir = 'F:/lianxi2/'  # 替换为您的输入文件目录路径
output_dir = 'F:/lianxi2/result'  # 替换为您的输出文件目录路径# 批量处理文件
batch_process_concentration_clumnsum_files(input_dir, output_dir)

 

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

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

相关文章

乐维网管平台核心功能解析(一)——告警关联知识

在数字化转型浪潮中,企业IT系统规模呈指数级增长,传统的"人工+经验"运维模式已难以应对海量告警处理需求。某银行数据中心曾统计,其日均告警量突破10万条,关键故障的平均定位时间长达3.5小时,直接导致年损失超千万元。这一现状折射出运维领域亟待突破的三大痛点…

python包:labelimg

什么是labelimg labelimg是一款开源的图像标注工具,标签可用于分类和目标检测,它是用python写的,并使用Qt作为其图形界面,简单好用(虽然是英文版的)。 其注释以 PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持 COCO数据集格式安装labelimg…

No.49 ES6---对象的扩展

1、属性的简洁表示法ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。<body><script>var name = "zhangsan";var user = {name:name, //这里属性名和属性值是同样的变量名称,可以写成name,就是属性的简洁表示…

Hyper-V Win10网络配置步骤详解

Hyper-V Win10的网络配置是确保虚拟机能够正常访问外部网络的关键步骤。以下是详细的配置指南:一、前提条件 确保计算机系统支持Hyper-V。Hyper-V主要适用于Windows 10专业版、企业版、教育版以及Windows Server系统。 CPU需要支持虚拟化技术,并且在BIOS中已经开启该功能。 二…

成都承接仪器定制:几种485自动收发通信电路介绍

我处承接提供优质的单片机开发、电路板PCB设计、控制器研发控制箱定制、电子产品、硬件开发、工控测控传感自动化PLC控制系统设计、仪器定制仪表开发测试设备订做、信号采集器研发、物联网、软件EXE编程、安卓APP等开发定制加工优质服务(www点yonko-tech点com,Q:2531二六三726…

【主流技术】Spring Boot Starter 的应用场景与自动配置

一般在企业开发中,会有专门的 git 仓库(组)来统一放置各个系统对应的 Starter 项目,其中会包括一个空的框架,拉取下来后我们就可以自己开发了。 在开发之前,我们需要知道常见的使用场景有哪些: 1、API 调用:将某系统的部分功能经过封装后通过 API 暴露出去,方便内部/外…

掌握 K8s Pod 基础应用 (一)

Pod 介绍 Pod结构每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:用户程序所在的容器,数量可多可少Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个:可以以它为依据,评估整个Pod的健康状态可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以…

小微企业怎么用CRM系统把客户“管”起来?一篇聊透!

说实话啊,很多小微企业一听到CRM系统,第一反应就是“那玩意适合大公司吧?我们这么小,客户没几个,花钱搞这个干嘛?”但其实,越是小企业,越该用CRM。 为啥?因为客户本来就不多,流失一个心疼死,搞定一个赚翻天,所以,客户管理必须要精细、到位、有方法,而CRM系统,就…

如何解决异地跨区域文件传输难题,提升传输效率?

在当今全球化的商业环境下,越来越多的企业为了拓展业务版图、获取更广泛的资源,纷纷在不同地区设立分支机构。这就使得异地跨区域文件传输成为企业日常运营中不可或缺的环节,从业务数据的共享,到项目资料的传递,都依赖于高效、安全的文件传输。然而,传统的异地跨区域文件…

PostgreSQL 部署全攻略:单机与集群模式详解

前言:在当今数字化浪潮中,数据已成为推动世界前行的核心力量。无论是企业决策、科学研究,还是日常生活的方方面面,数据的存储、管理和分析都扮演着至关重要的角色。而数据库作为数据的“守护者”和“管理者”,其重要性不言而喻。在众多数据库系统中,PostgreSQL 以其卓越的…

AI 智能体引爆开源社区「GitHub 热点速览」

最近很火的 Manus 智能体是一款将你的想法转化为行动的工具,能够处理生活中的各种任务。一经发布便迅速走红,并间接引爆了开源社区。 这也导致上榜的全是 AI 智能体开源项目,比如无需邀请码的开源版 Manus——OpenManus,MetaGPT 团队仅用了 3 个小时就开发出了原型,并在短…

【设计模式】从火车站卖票看代理模式的实际应用

概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理类在编译期就生成,而动态代理代理类则…