【发布时间】:2014-02-24 15:13:36
【问题描述】:
我有一个由N 列和M 行组成的数据文件,我需要读取它们并将每一列存储到一个数组/列表中。该文件通常填充数字(浮点数),在这些情况下我可以这样做:
import numpy as np
f_data = np.loadtxt('file.dat', unpack=True)
结果是作为子列表存储在 f_data 中的列,其中的元素是 floats,正如预期的那样。
其他时候文件可能有散落在各处的随机字符串(请参阅此类文件的示例here)在这些情况下,我需要以相同的方式读取它(即:解压缩存储在列表/数组中的每一列和其中的所有元素都存储为float 类型),所有字符串都转换为默认浮点数(例如99.999)
在上面的数据文件示例中,5 列在读取后会如下所示:
f_data[5]
[2.049, 0.946, 0.942, 0.889, 99.999, 0.879, 0.989, 1.142, 1.062, 0.551, 1.233, 0.503]
请注意,所有元素都是 float 类型,并且找到的字符串已转换为 99.999 并存储为浮点数。
np.genfromtxt 能够读取混合类型的文件,但结果是所有浮点数都存储为字符串,这不是我需要的。
我该怎么做?
【问题讨论】:
-
对不起,我认为这是从帖子的上下文中明确暗示的。我现在把它说得更清楚。