loadtxt()读取数据类型转换/string转换float/ValueError: could not convert string to float:

实验数据样式:Test.csv(只显示几行)

-0.589469,5.000059,-0.480721,0.000204,0.000204
-12.945284,4.999956,9.671936,0.000145,0.000145
-9.701032,1.199940,6.882448,3.400034,3.400034
-13.222972,6.900084,10.320272,0.799982,0.799982

一般在我们进行机器学习的时候,两个非常重要的就是1、矩阵;2、数据类型,但是不幸的是有时候自己处理的数据是string类型,但是计算的时候需要转换为float类型,甚至需要转换为矩阵(此处不介绍)

读取文件信息:

train_data = np.loadtxt("Data/Train_1.csv", delimiter=',', dtype=np.str)
读取后发现loadtxt是str类型,得计算啊,准换类型

于是,直接将数据读取后采用强制类型转换,a = float(str),结果发现自己被强了,尴尬。。。。。。

错误显示。。。。


Traceback (most recent call last):
  File "C:/Users/JZ/PycharmProjects/Test/test.py", line 4, in <module>
    data1=np.loadtxt("Train.csv", delimiter=',')
  File "C:\Users\JZ\AppData\Local\Programs\Python\Python35\lib\site-packages\numpy\lib\npyio.py", line 1024, in loadtxt
    return float(x)
ValueError: could not convert string to float: 

纠结了一会,发现一直没有解决,于是看了numpy的数据类型转换,[点击打开链接]因为后期需要转换矩阵,就顺带学了

import numpy as np
var1 = np.float64(var)
var2 = np.float64(var)

突然发现问题解决了,突然发现有时候思路很重要,并不是一味的死钻。

接下来就是将数据保存到文件中

此处使用  str = '%f%f\n' %(var1,var2) 

而不是:str = var1+","+var2+"\n"


好了,至此废话不多说,上代码:

import numpy as np

fr = open("Train.csv",'r')
frw = open("Train_1.csv",'w')

line = fr.readlines()
for L in line:
    string = L.strip("\n").split(",")
    a = np.float64(string[0])
    b = np.float64(string[1])
    c = np.float64(string[2])
    d = np.float64(string[3])
    e = np.float64(string[4])

    str = '%f,%f,%f,%f,%f\n' % (a,b,c,d,e)
    print(str)
    frw.write(str)
frw.close()
fr.close()


  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@RichardWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值