从文本文件中将数据读入numpy数组

时间:2013-11-25 18:21:52

标签: python arrays file-io numpy genfromtxt

我有一个包含一些元数据的文件,然后是一些由2列标题组成的实际数据。在numpy中使用genfromtxt之前,我是否需要分离这两种类型的数据?或者我可以以某种方式拆分数据吗?将文件指针放在标题上方的行尾,然后从那里尝试genfromtxt怎么样?谢谢 该文件的格式如下所示:

 &SRS
<MetaDataAtStart>
multiple=True
Wavelength (Angstrom)=0.97587
mode=assessment
background=True
issid=py11n2g
noisy=True
</MetaDataAtStart>
&END
Two Theta(deg)  Counts(sec^-1)
10.0    41.0
10.1    39.0
10.2    38.0
10.3    38.0
10.4    41.0
10.5    42.0
10.6    38.0
10.7    44.0
10.8    42.0
10.9    39.0
11.0    37.0
11.1    37.0
11.2    45.0
11.3    36.0
11.4    37.0
11.5    37.0
11.6    40.0
11.7    44.0
11.8    45.0
11.9    46.0
12.0    44.0
12.1    40.0
12.2    41.0
12.3    39.0
12.4    41.0

1 个答案:

答案 0 :(得分:28)

如果您不想要第一个n行,请尝试(如果没有丢失的数据):

data = numpy.loadtxt(yourFileName,skiprows=n)

或(如果缺少数据):

data = numpy.genfromtxt(yourFileName,skiprows=n)    

如果您想要解析标题信息,可以返回并open文件解析标题,例如:

fh = open(yourFileName,'r')
for i,line in enumerate(fh):
    if i is n: break
    do_other_stuff_to_header(line)
fh.close()