web-dev-qa-db-ja.com

テキストファイルからnumpy配列にデータを読み込む

いくつかのメタデータを含むファイルがあり、次に見出しのある2つの列で構成される実際のデータがあります。 numpyでgenfromtxtを使用する前に、2種類のデータを分離する必要がありますか?または、どういうわけかデータを分割できますか?ヘッダーのすぐ上の行の終わりにファイルポインターを配置し、そこから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
13
Nirvan

最初の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()
29
cm2