快速回答:
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 csvarrays = []# 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 csvparser = 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))]



