当我尝试使用 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(使用前将#替换为@)