我真的不想秃头 发表于 2022-5-1 16:46:28

读取txt文件报错

源码
def loadData(filename):
    path = filename
    data = np.loadtxt(path, dtype=float, delimiter=',')
    y, X_train = np.split(data, indices_or_sections=(2,), axis=1)
    returnX_train, y
报错:
ValueError: could not convert string to float: '1 70.000000 1.000000 4.000000 130.000000 322.000000 0.000000 2.000000 109.000000 0.000000 2.400000 2.000000 3.000000 3.000000 '


该怎么改呢

Twilight6 发表于 2022-5-1 17:08:09


看上去原数据的分隔符是空格,你切割符号应该改成 空格吧

data = np.loadtxt(path, dtype=float, delimiter=',')

改成 :

data = np.loadtxt(path, dtype=float, delimiter=' ')

试试看

我真的不想秃头 发表于 2022-5-1 19:19:05

Twilight6 发表于 2022-5-1 17:08
看上去原数据的分隔符是空格,你切割符号应该改成 空格吧

data = np.loadtxt(path, dtype=float, deli ...

还是同样的错误

isdkz 发表于 2022-5-1 20:17:39

我真的不想秃头 发表于 2022-5-1 19:19
还是同样的错误

建议把完整的报错信息贴上来,别人比较好分析

Twilight6 发表于 2022-5-1 21:46:59

我真的不想秃头 发表于 2022-5-1 19:19
还是同样的错误



那应该是数据文件没处理好吧,你把数据文件部分内容和代码发一发

我真的不想秃头 发表于 2022-5-2 13:34:30

Twilight6 发表于 2022-5-1 21:46
那应该是数据文件没处理好吧,你把数据文件部分内容和代码发一发

Twilight6 发表于 2022-5-2 14:02:33

我真的不想秃头 发表于 2022-5-2 13:34



切割符号是空格,不是 | 竖线,我当时是把字体背景弄红色,才看上去像竖线了......

另外你数据文件末尾有多余空格,导致空格切割符会切割出一个空字符串

使得转换为 float 时候也会报错,我帮你删了末尾的空格了



最后就是 98 代码的 :yi * gxi >= 1 这里

yi 是一个数组,有多个数据,gxi 是单独一个值,他们俩相乘之后还是一个数组,不能直接和 1 进行大小比较的



我真的不想秃头 发表于 2022-5-2 20:57:18

Twilight6 发表于 2022-5-2 14:02
切割符号是空格,不是 | 竖线,我当时是把字体背景弄红色,才看上去像竖线了......

另外你数据文件 ...

那这个yi*gxi>=1该怎么改呢

zh134197 发表于 2022-5-2 21:32:20

你的逻辑错了,应该先拆分,拆分后再去后修改数据的类型,因为拆分之前是字符串

Twilight6 发表于 2022-5-3 19:46:29

我真的不想秃头 发表于 2022-5-2 20:57
那这个yi*gxi>=1该怎么改呢


这个不太清楚了,你自己回想回想你这个条件的用意,再想想怎么改吧
页: [1]
查看完整版本: 读取txt文件报错