我正在使用带有 numpy 的 python 从具有相当复杂格式的文本文件中的数值模型中读取数据。
Numpy 的 genfromtxt 和 fromfile 函数运行良好,但前提是数据是结构化的。我的数据文件看起来像这样:
------截图
[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 不擅长广义解析,因此您最好超越它,您的选择将主要取决于文件的一致性。
如果它们非常一致,也就是说,你可以只从已知位置和已知行中提取数字,而不是你可以逐行读取文件作为字符串并将其索引到你想要的字符. (单步执行文件,例如,使用 file.readlines 将每一行作为字符串获取。)
通常的情况(至少我发现的)是它比上面更多样化,但是可以使用简单的字符串操作来解析行,例如 string.split (这几乎总是我的第一步),等等。
除此之外,Python 中还有很多解析库。我偏爱pyparsing (但我不太了解其他人,所以这不是一个公平的比较)。这是 a summary of the various parsing libraries .
关于Python:使用 numpy 读取复杂的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132086/