您的位置:首頁技術文章
文章詳情頁

python將txt文件隔指定行相加的問題

瀏覽:75日期:2022-07-06 08:13:55

問題描述

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 編程
相關文章:
国产综合久久一区二区三区