簡體   English   中英

Python:用numpy讀取復雜的文本文件

[英]Python: Reading complicated text files with numpy

我正在使用帶有numpy的python來讀取具有相當復雜格式的文本文件中的數值模型中的數據。

Numpy的genfromtxt和fromfile函數運行良好,但只有數據是結構化的。 我的數據文件看起來像這樣:

------ SNIP

[sitename] [dimemsion 1 size] [dimension 2 size]
[data for dim 1]
[data for dim 2]
[date/time]
[header data]
[data (dim1 * dim2)]
[header]
[data]
...
.  
.   
[data/time]
[header]
[data]
.
.
etc...

----剪斷

所以,我有一個文本和數字的混合和一個復雜(但重復)的布局。 如何在使用numpy時閱讀本文的最佳方法是什么?

干杯,

克里斯

Numpy不擅長廣義解析,所以你最好超越它,你選擇的內容主要取決於文件的一致性。

如果它們異常超一致,那么你可以從已知位置和已知行中提取數字,而不是只能逐行讀取文件作為sting並將其索引到你想要的字符。 (逐步執行文件,例如,使用file.readlines將每一行作為字符串。)

通常的情況(至少我發現)是它比上面的變化更多,但是可以使用簡單的字符串操作來解析行,例如string.split (這幾乎總是我的第一步)等。

除此之外,Python中有許多解析庫。 我偏愛pyparsing (但我不了解其他人,所以這不是一個公平的比較)。 以下是各種解析庫的摘要

我同意之前的回答。 下面的一系列步驟效果最好,比pyparsing或numpy.genfromtxt容易得多

inp = open(textfilename).readlines()
my_list = []
for line in inp:
    item = str.split(line)
    my_list.append(float(item[0]))

然后,您可以輕松地將列表轉換為numpy數組/矩陣,然后從那里繼續

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM