实验数据样式: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()
版权声明:本文为gsww404原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。