txt数据集转npy文件时保留原始形状的加载方法咨询
问题原因
你当前加载得到一维数组的核心原因是两个参数设置错误:
- 指定了
dtype=str,numpy会将每行完整内容识别为单个字符串元素,不会拆分每行的多个数值 - 没有显式指定分隔符参数
delimiter,numpy无法正确识别每行内30个特征的拆分规则
解决方法
不需要更换加载函数,调整np.genfromtxt的参数即可,也可以选择格式更规整的np.loadtxt处理无缺失的数值数据集:
方法1:使用调整参数的np.genfromtxt
import numpy as np # 根据你的txt实际分隔符调整delimiter取值,空格分隔填' ',逗号分隔填',' array_from_file = np.genfromtxt( "machine-1-5.txt", dtype=np.float64, # 你的原始数据是浮点值,直接指定浮点类型即可 delimiter=' ', # 替换为你txt实际使用的列分隔符 # 如果文件有表头行,新增参数 skip_header=1 跳过表头 # 如果有缺失值,可以新增 missing_values='', filling_values=np.nan 处理 ) # 验证形状是否符合预期 print(array_from_file.shape) # 导出为npy文件 np.save("machine-1-5.npy", array_from_file)
方法2:使用np.loadtxt(适合无缺失值的规整数据集)
如果你的txt数据集没有缺失值、格式完全统一,用np.loadtxt加载速度更快:
import numpy as np array_from_file = np.loadtxt( "machine-1-5.txt", dtype=np.float64, delimiter=' ' # 同样替换为实际列分隔符 ) np.save("machine-1-5.npy", array_from_file)
内容的提问来源于stack exchange,提问作者Fabio
相关产品推荐
相关产品推荐

