Hello, I have recently discovered the python language and am having a lot of fun getting head around the basics of it. However, I have run into a stumbling block that I have not been able to overcome, so I thought I would ask for help. <Overview> I am trying to import a text file that has the following format: 02/01/2000 @ 00:00:00 0.983896 Q10 T2 03/01/2000 @ 00:00:00 0.557377 Q10 T2 04/01/2000 @ 00:00:00 0.508871 Q10 T2 05/01/2000 @ 00:00:00 0.583196 Q10 T2 06/01/2000 @ 00:00:00 0.518281 Q10 T2 when there is missing data: 12/09/2000 @ 00:00:00 Q151 T2 13/09/2000 @ 00:00:00 Q151 T2
I have cobbled together some code which imports the data. The next step is to create an array in which each column contains a years worth of values. Thus, if i have 6 years of data (2001-2006 inclusive), there will be six columns, with 365 rows (not all years have a full data set and may only have say 340 days of data. <The question> In the code below print answer[j,1] is giving me the right answer but i can't write it to an array. any suggestions welcomed. This is what I have: flow=[] flowdate=[] yeardate=[] uniqueyear=[] #flow_order= flow_rank=[] icount=[] p=[] filename=r"C:\Documents and Settings\bevanj\Desktop\flow_duration.tsf" linesep ="\n" # read in whole file tempdata = open( filename).read() # break into lines tempdata = string.split( tempdata, linesep ) # for each record, get the field values for i in range( len( tempdata)): # split into the lines fields = string.split( tempdata[i]) if len(fields)>5: flowdate.append(fields[0]) list =string.split(fields[0],"/") yeardate.append(list[2]) flow.append(float(fields[3])) answer=column_stack((flowdate,flow)) for rows in yeardate: if rows not in uniqueyear: uniqueyear.append(rows) #print answer[:,0] #date flow_order=empty((0,0),dtype=float) #for yr in enumerate(uniqueyear): for iyr,yr in enumerate(uniqueyear): for j, val, in enumerate (answer[:,0]): flowyr=string.split(val,"/") if int(flowyr[2])==int(yr): print answer[j,1] #flow_order = -- http://mail.python.org/mailman/listinfo/python-list