python將txt文件隔指定行相加的問(wèn)題
問(wèn)題描述
1,數(shù)據(jù)格式很簡(jiǎn)單,有四周也就是28天的數(shù)據(jù),每天有144個(gè)數(shù)據(jù),共有4032個(gè),如下:
11.02836638168102711.12710087567367510.8927706027910978.62242459098974888.00992746244575638.11841955408968.02626974851215138.5141785771838925······
用Sij表示一星期當(dāng)中第j天第i個(gè)觀測(cè)值,其中j=1,2,3,4,5,6,7;i=1,2,3,…,144;
現(xiàn)在想求出4032個(gè)Yij的值我寫(xiě)了一個(gè)有些復(fù)雜的,但是感覺(jué)不太對(duì),請(qǐng)大神們幫忙看看,感謝
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)
問(wèn)題解答
回答1:是求每周的每一點(diǎn)的平均偏離比例吧!關(guān)健是定義好數(shù)據(jù)結(jié)構(gòu),其他的都好辦!
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)]# 結(jié)果with open(’training_data.txt’)as reader,open(’weken4-4.txt’,’w’)as writer: # 初始化數(shù)據(jù) 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 # 求結(jié)果 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))
相關(guān)文章:
1. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?2. mysql - 數(shù)據(jù)庫(kù)建字段,默認(rèn)值空和empty string有什么區(qū)別 1103. mysql - 這種分級(jí)一對(duì)多,且分級(jí)不平衡的模型該怎么設(shè)計(jì)表?4. Navicat for mysql 中以json格式儲(chǔ)存的數(shù)據(jù)存在大量反斜杠,如何去除?5. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf6. mysql mysql_real_escape_string() 轉(zhuǎn)義問(wèn)題7. 新人求教MySQL關(guān)于判斷后拼接條件進(jìn)行查詢(xún)的sql語(yǔ)句8. mysql - 千萬(wàn)數(shù)據(jù) 分頁(yè),當(dāng)偏移量 原來(lái)越大時(shí),怎么優(yōu)化速度9. MySQL FOREIGN KEY 約束報(bào)錯(cuò)10. mysql - 數(shù)據(jù)庫(kù)表中,兩個(gè)表互為外鍵參考如何解決
