您的位置:首页技术文章
文章详情页

python将txt文件隔指定行相加的问题

【字号: 日期:2022-07-06 08:13:55浏览:47作者:猪猪

问题描述

1,数据格式很简单,有四周也就是28天的数据,每天有144个数据,共有4032个,如下:

11.02836638168102711.12710087567367510.8927706027910978.62242459098974888.00992746244575638.11841955408968.02626974851215138.5141785771838925······

用Sij表示一星期当中第j天第i个观测值,其中j=1,2,3,4,5,6,7;i=1,2,3,…,144;

python将txt文件隔指定行相加的问题

python将txt文件隔指定行相加的问题

python将txt文件隔指定行相加的问题

现在想求出4032个Yij的值我写了一个有些复杂的,但是感觉不太对,请大神们帮忙看看,感谢

from __future__ import pisionimport matplotlib.pyplot as pltwith open(’training_data.txt’)as reader,open(’weken4-4.txt’,’w’)as writer:sum1=[0 for x1 in range(0,144)]sum2=[0 for x2 in range(0,144)]sum3=[0 for x3 in range(0,144)]sum4=[0 for x4 in range(0,144)]data=[0 for y1 in range(0,4032)]for index,line in enumerate(reader): for i in range(0,144):if index<1008: if (index-i)%144==0:sum1[i]=sum1[i]+float(line)if 1008<=index<2016: if (index-i)%144==0:sum2[i]=sum2[i]+float(line)if 2016<=index<3024: if (index-i)%144==0: sum3[i]=sum3[i]+float(line)elif 3024<=index<4032: if (index-i)%144==0:sum4[i]=sum4[i]+float(line)file = open(’training_data.txt’,’r’)for j in range(0,4032):line = file.readline()a= line.split()if j<1008:data[j]=(float(a[0])-(sum1[j%144]/7))/(sum1[j%144]/7)if 1008<=j<2016:data[j]=(float(a[0])-(sum2[j%144]/7))/(sum2[j%144]/7)if 2016<=j<3024:data[j]=(float(a[0])-(sum3[j%144]/7))/(sum3[j%144]/7)elif 3024<=j<4032:data[j]=(float(a[0])-(sum4[j%144]/7))/(sum4[j%144]/7)

问题解答

回答1:

是求每周的每一点的平均偏离比例吧!关健是定义好数据结构,其他的都好办!

from __future__ import pision# 4*7*144维度的列表data = [[[0]*144 for i in range(7)]for _ in range(4)]# 4*144维度的列表data_sum = [[0]*144 for i in range(4)]data_avg = [[0]*144 for i in range(4)]# 结果with open(’training_data.txt’)as reader,open(’weken4-4.txt’,’w’)as writer: # 初始化数据 for i in range(4):for j in range(7): for k in range(144):v = float(reader.readline())data[i][j][k] = vdata_sum[i][k] += v # 求平均 for i in range(4):for j in range(144): data_avg[i][j] = data_sum[i][j] / 144 # 求结果 for i in range(4):for j in range(7): for k in range(144):v = (data[i][j][k] - data_sum[i][k]) / data_avg[i][k]writer.write(’{}n’.format(v))

标签: Python 编程
相关文章: