从python中的文本文件加载数值数据

时间:2017-07-21 12:06:02

标签: python-2.7

我有一个

的文本文件
1.25e5  15

2.7e6   12

18.e5   14

我想将文本读作2d数组,并将第一列指定为x,将第二列指定为y。

任何人都可以帮助我,我该怎么做。我做了

f = open('energy.txt', 'r')
x = f.readlines()

但我不知道如何创建第一列。

1 个答案:

答案 0 :(得分:1)

由于你没有numpy,你可以使用np.loadtxt

In [270]: np.loadtxt('energy.txt')
Out[270]: 
array([[  1.25000000e+05,   1.50000000e+01],
       [  2.70000000e+06,   1.20000000e+01],
       [  1.80000000e+06,   1.40000000e+01]])

或者,python的方法是:

In [277]: data = []

In [278]: with open('energy.txt') as f:
     ...:     for line in f:
     ...:         i, j = line.split()
     ...:         data.append([float(i), int(j)])
     ...:         

In [279]: data
Out[279]: [[125000.0, 15], [2700000.0, 12], [1800000.0, 14]]

使用这种方法,您可以将数据存储为列表列表,而不是多个浮动数组。此外,您还需要添加一个尝试 - 除非您的文件中有任何异常行。