Python numpy:具有多个数据集的数据文件
假设您有一个数据文件,其中包含由以下格式的字符串“-”分隔的多个数据集:Python numpy:具有多个数据集的数据文件,python,numpy,plot,Python,Numpy,Plot,假设您有一个数据文件,其中包含由以下格式的字符串“-”分隔的多个数据集: -- <x0_val> <y0_val> <x1_val> <y1_val> <x2_val> <y2_val> -- <x0_val> <y0_val> <x1_val> <y1_val> <x2_val> <y2_val> ... 给很多 Line #1550 (got 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>
...
给很多
Line #1550 (got 1 columns instead of 2)
我会更新
我首先将文件拆分为多个文件,这些文件可以作为对象驻留在内存中,也可以作为新文件驻留在文件系统中
您可以使用模块re
找到字符串--
然后你可以使用我在上面发布的链接 如果您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()
如果第一个块是空的,您可能必须去掉它
您也可以检查a。参见:参见?可以通过两个分隔符使用拆分(首先是
--
,然后是'
。有130个数据集。真的可以分割成多个文件吗?@Frank,为什么不呢?如果它只在内存中,就不会造成任何伤害。如果它是持久的,以后的工作会更容易。不,使用commuments
它只会合并所有数据集。它不会创建数组数组。是的,它不会产生错误。)连接所有数据集的数组。comments=“-”
强制np.genfromtxt
跳过其中包含-
的行。同样,如果有负值则不好。如果需要数组数组,请为每个块构造单独的列表,然后将每个列表转换为数组。
blocks = []
current = []
for line in your_file:
if line.startswith("-"):
blocks.append(np.array(current))
current = []
else:
current += line.split()