快速回答:
arrays = []
for line in open(your_file): # no need to use readlines if you don't want to store them
# use a list comprehension to build your array on the fly
new_array = np.array((array.float(i) for i in line.split(' ')))
arrays.append(new_array)
如果您经常处理此类数据,csv模块将有所帮助。
import csv
arrays = []
# declare the format of you csv file and Python will turn line into
# lists for you
parser = csv.reader(open(your_file), delimiter=' '))
for l in parser:
arrays.append(np.array((array.float(i) for i in l)))
如果您感到疯狂,甚至可以使用完全声明的形式:
import csv
parser = csv.reader(open(your_file), delimiter=' '))
make_array = lambda row : np.array((array.float(i) for i in row))
arrays = [make_array(row) for row in parser]
而且,如果您确实希望同事讨厌您,则可以制作一个衬板(一点也不PYTHONIC :-):
arrays = [np.array((array.float(i) for i in r)) for r in csv.reader(open(your_file), delimiter=' '))]
剥去所有的锅炉板和灵活性,您可以得到一个干净且易于阅读的衬里。我不会使用它,因为我喜欢使用的潜在潜力csv
,但是它足够好。这里是一个灰色区域,所以我不会说这是Pythonic,但是绝对方便。
arrays = [np.array((array.float(i) for i in l.split())) for l in open(your_file))]