numpy loadtxt 跳过第一行

2024-01-13

当我尝试使用 numpy 的 loadtxt 函数从 CSV 文件导入数据时,遇到一个小问题。这是我拥有的数据文件类型的示例。

将其命名为“datafile1.csv”:

# Comment 1
# Comment 2
x,y,z 
1,2,3
4,5,6
7,8,9
...
...
# End of File Comment

我认为适用于这种情况的脚本如下所示:

import numpy as np
FH = np.loadtxt('datafile1.csv',comments='#',delimiter=',',skiprows=1)

但是,我收到错误:

ValueError: could not convert string to float: x

这告诉我 kwarg 'skiprows' 不是跳过标题,而是跳过第一行注释。我可以简单地确保skiprows=3,但复杂的是我有大量文件,这些文件不一定在文件顶部具有相同数量的注释行。如何确保当我使用 loadtxt 时我只在这种情况下获取实际数据?

附: - 我也愿意接受 bash 解决方案。


使用生成器表达式手动跳过注释行:

import numpy as np

with open('datafile1.csv') as f:
    lines = (line for line in f if not line.startswith('#'))
    FH = np.loadtxt(lines, delimiter=',', skiprows=1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy loadtxt 跳过第一行 的相关文章

随机推荐