You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

numpy.genfromtxt设置names=True未识别首行注释表头,数据读取为空

问题原因及解决方法

核心问题

当你设置comments="#"时,numpy.genfromtxt会将所有以#开头的行完全跳过,不会解析其中的表头内容。虽然官方文档提到names=True时首行注释会被解析为表头,但这个逻辑的前提是注释符号不会触发整行跳过,你的参数设置刚好触发了注释行跳过规则,导致表头和数据解析异常。

具体修复方案

方案1:调整comments参数

将comments设为一个不会出现在表头行开头的字符(比如%),这样首行的#firstName|LastName不会被当作注释跳过,names=True会自动识别该行内容为表头:

import numpy as np

data = np.genfromtxt(r'C:\tmp\data.txt', comments='%', delimiter='|', dtype=str, names=True, skip_header=0)
print(data)

方案2:手动指定表头并跳过注释行

如果必须保留comments="#",可以手动指定表头列表,同时设置skip_header=1跳过注释行:

import numpy as np

data = np.genfromtxt(r'C:\tmp\data.txt', comments='#', delimiter='|', dtype=str, names=['firstName', 'LastName'], skip_header=1)
print(data)

方案3:修改数据文件格式

移除表头行的#,直接写成firstName|LastName,保持comments="#"和names=True不变,此时genfromtxt会将第一行作为表头正常解析:

import numpy as np

data = np.genfromtxt(r'C:\tmp\data.txt', comments='#', delimiter='|', dtype=str, names=True, skip_header=0)
print(data)

额外注意点

  • Windows路径建议使用原始字符串(r'C:\tmp\data.txt'),避免转义字符引发的路径识别错误
  • 检查数据文件的换行符格式(Windows下为\r\n),异常换行符也可能导致解析失败

内容的提问来源于stack exchange,提问作者user17911

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:52:02