[英]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.