On Wednesday, January 2, 2013 5:54:18 PM UTC-6, Dave Angel wrote: > On 01/02/2013 05:21 PM, Isaac Won wrote: > > > Hi all, > > > > > > Thanks to Hans, I have had a good progress on my problem. > > > > > > Followings are Hans's Idea: > > > > > > import numpy as np > > > > > > b = [] > > > c = 4 > > > f = open("text.file", "r") > > > > > > while c < 10: > > > c = c + 1 > > > > > > > > > f.seek(0,0) > > > > > > for columns in ( raw.strip().split() for raw in f ): > > > b.append(columns[c]) > > > > > > y = np.array(b, float) > > > print c, y > > > > > > > > > It's a bit inefficient to read the same file several times. > > > > Don't bet on it. The OS and the libraries and Python each do some > > buffering, so it might be nearly as fast to just reread if it's a small > > file. And if it's a huge one, the list would be even bigger. So the > > only sizes where the second approach is likely better is the mid-size file. > > > > > You might consider reading it just once. For example: > > > > > > > > > import numpy as np > > > > > > b = [] > > > > > > > > > > > > f = open("text.file", "r") > > > > > > data = [ line.strip().split() for line in f ] > > > f.close() > > > > > > for c in xrange(5, 11): > > > for row in data: > > > b.append(row[c]) > > > > > > > > > y = np.array(b, float) > > > print c, y > > > ------------------------------------------------------------------------------- > > > > > > It is a great idea, but I found some problems. I want each individual array > > of y. However, these two codes prodce accumulated array such as [1,2,3], > > [1,2,3,4,5,6], [1,2,3,4,5,6,7,8,9] and so on. I have tried to initialize > > for loop for each time to produce array. This effort has not been very > > successful. > > > Do you guys have any idea? I will really appreciate ant help and idea. > > > > Your description is very confusing. But i don't see why you just don't > > just set b=[] inside the outer loop, rather than doing it at the begin > > of the program. > > > > for c in xrange(5, 11): > > b = [] > > for row in data: > > b.append(row[c]) > > > > > > > > -- > > > > DaveA
Hi Dave, I really appreciate your advice. It was really helpful. Isaac -- http://mail.python.org/mailman/listinfo/python-list