1

假设您有一个数据文件,其中包含多个由字符串“--”分隔的数据集,格式如下:

--
<x0_val> <y0_val>
<x1_val> <y1_val>
<x2_val> <y2_val>
--
<x0_val> <y0_val>
<x1_val> <y1_val>
<x2_val> <y2_val>
...

如何将整个文件读入一个数组数组,以便之后可以将所有数据集绘制到同一张图片上,并for在外部数组上循环?

genfromtxt('data.dat', delimiter=("--"))

给了很多

Line #1550 (got 1 columns instead of 2)
4

2 回答 2

1

我会更新...

我首先将文件拆分为多个文件,这些文件可以作为对象驻留在内存中,也可以作为新文件驻留在文件系统中。

--您可以使用模块定位字符串re

然后你可以使用我上面发布的链接。

于 2012-09-11T10:31:39.367 回答
1

如果您 100% 确定文件中没有负值,您可以快速尝试:

np.genfromtxt(your_file, comments="-")

comments="-"强制genfromtxt忽略 之后的所有字符-,如果您有负变量,这当然会产生奇怪的结果。此外,结果将只是单个数组中的一部分数据集

否则,最安全的方法是迭代您的文件并将不匹配的行存储在--每个块的一个列表中,类似于以下内容:

blocks = []
current = []
for line in your_file:
    if line.startswith("-"):
        blocks.append(np.array(current))
        current = []
    else:
        current += line.split()

如果为空,您可能必须摆脱第一个块。

您还可以检查mmap已发布的基于解决方案

于 2012-09-11T10:31:52.193 回答