【发布时间】:2016-04-12 09:56:59
【问题描述】:
我在一个txt文件中有一些数据如下:
# Contour 0, label: 37
41.6 7.5
41.5 7.4
41.5 7.3
41.4 7.2
# Contour 1, label:
48.3 2.9
48.4 3.0
48.6 3.1
# Contour 2, label:
61.4 2.9
61.3 3.0
....
所以每个块都以注释开始,以空行结束。 我想读出这些数据并将它们放入一个由 numpy 数组组成的列表中,就像
# list as i want it:
[array([[41.6, 7.5], [41.5, 7.4], [1.5, 7.3], [41.4, 7.2]]),
array([[48.3, 2.9], [48.4, 3.0], [48.6, 3.1]]),
array([[61.4, 2.9], [61.3, 3.0]]), ...]
numpy 有没有一种有效的方法来做到这一点? genfromtxt 或 loadtxt 似乎没有所需的选项!?
【问题讨论】:
-
loadtxt和genfromtxt并不是特别有效。他们只是逐行读取输入,执行split,然后收集列表中的值。 `转换是一个结束。对于简单的花车,您自己的阅读器也一样好。 -
早期有关于按块读取 csv 的 SO 问题。读者接受任何来源的线路。编写您自己的过滤器或生成器。