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

使用np.genfromtxt处理含#-INF缺失值及逗号小数点的数据集问题

问题根因
  • 核心问题是delimiter参数设置错误:你指定的固定宽度总共有9个取值,意味着只会读取9列数据,#-INF及之后的所有列都被直接截断舍弃,和missing_values参数无关。
  • 次要问题是missing_values映射错误:你仅给第0列(日期列)设置了#-INF为缺失值,实际#-INF出现在靠后的数值列,匹配规则完全不生效。
  • 额外问题:固定宽度适配性极差,只要原始数据的列宽有一点变动就会读错,远不如自动识别空白分隔的方案稳定。
修正后的实现代码

推荐用自动识别空白分隔的方案,不需要手动数列宽,适配性更强:

import numpy as np

# 第一步:全量读取所有列为字符串格式,自动按任意空白拆分列
raw_data = np.genfromtxt(r'data.txt', skip_header=2, delimiter=None, dtype=str)

# 第二步:统一处理字符串格式问题
# 替换逗号为标准小数点
raw_data = np.char.replace(raw_data, ',', '.')
# 替换#-INF为nan字符串,后续转数值时会自动识别为np.nan
raw_data = np.char.replace(raw_data, '#-INF', 'nan')

# 第三步:拆分数据类型,前两列是日期、时间保留为字符串,后续列转浮点型
datetime_col = raw_data[:, :2]
value_col = raw_data[:, 2:].astype(np.float32)
# 合并为最终可用的数据集
processed_data = np.column_stack([datetime_col, value_col])
效果说明

处理后的数据包含完整的16列内容,所有#-INF会被转换为numpy标准缺失值np.nan,逗号小数点也完成转换,可直接传入matplotlib进行绘图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:45:06