-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()
NumPy可以使用 load txt ()方法直接将 txt 文本文件加载成数组,今天加载一个文本格式的点云文件时提示如下错误: import numpy as np file=r"" data=np. load txt (file) 应该是某一行数据中有文本字符,NumPy加载时无法 转换 为浮点型的数据,但是错误信息只提示了是103.0这个数据,没有提示在哪一行,我的这个点云文件总共有348570行,显然手动去找哪一行的数据有问题不太现实,最终用了如下办法定位到文本中错误的行数, import numpy as np 背景: load txt 报错 ValueError : could not convert string to float : ‘D00002’ load txt () 是numpy中用来读取 txt 文件的函数,其用法为: numpy. load txt (fname, dtype=, comments='#', delimiter=None, convert ers=None, skiprows=0, usecols=None, unpack=False, ndmin=0) fname:文件名 dtype:生成数据的数据类型,默认是浮点数 当要读取的文件既有数据又有字符串时,把生成数据的数据类型转为字符串,即 d 多年的Python编程和机器学习实践,使我深入理解了这些技术的核心原理,并能够在实际项目中灵活应用。我坚信知识的力量,希望通过我的分享,能够帮助更多的人掌握这些技术,并在实际项目中发挥作用。是一个功能强大且易于使用的函数,它为我们提供了一种便捷的方式来读取和处理文本文件中的数据。在数据分析和机器学习的项目中,我们经常需要从各种来源获取数据,其中文本文件是最常见的格式之一。的一个更通用的版本,它提供了更多的选项和灵活性,可以处理更复杂的文本文件。在选择使用哪个函数时,需要根据具体的需求和文件的特点来决定。 python np. load txt () 读取数据 集时报错 ValueError : could not convert string to float 以及pandas.readcsv()对比 4、常见的两种读取csv文件方式 读以下两篇文章即可:《numpy中 load txt 的用法及参数说明》《pandas中read_csv详解》1、注意numpy中 load txt ()和pandas中read_csv()不一样!!!前者需要指定分隔符,不然就会读一整行。且返回的就是一个ndarray了后者可以 在处理SICK数据集的时候,为了方便实验我切分成了train集和test集。特别坑! 针对数据集是 txt 的,我 转换 成了csv格式(用python转的,代码csdn上特别多),并且特别注意了encoding用的utf-8,但有时候你一用记事本或者notepad++打开它就变成了ANSI编码,如果你把ANSI格式的读进去,会直接报utf-8的错。 处理方法: 1、用记事本或者 numpy. load txt (fname, dtype=, comments='#', delimiter=None, convert ers=None, skiprows=0, usecols=None, unpack=False, ndmin=0) 作用:从文本文件加载数据,文本文件中的每一行必须具有相同数量的值。 各个参数的作用: fname:file or str 要读取的文件或文件名。如果文件扩展名为.gz或.bz2,则文件先解压。 dtype:数据类型,可选 data = np. load txt (file_path) 对文件中的数据进行读取时,报错 ValueError : could not convert string to float : '-1.8,' 看报错描述以为是数据中含有负数的问题,改了半天没有什么好的解决办法 最终的解决措施:加delimiter=',' data = np. load txt (file_path, delimiter=. OM=np.array(om.tolist()) 但是,有时候进行新实验,又报出了could not convert string to float 的错误,后经过修改,发现原因,我的urlOM是csv格式文件,但是是从 txt 直接改后缀得来的。 正确的做法是: excel打开 txt ,另存为csv, 一定要另存为 使用 float ()函数来 转换 字符串为浮点数是,python抛出 ValueError ,并提示,could not convert string to float ,意思是无法将参数指定的字符串 转换 为浮点数 float 类型的值,这是为什么呢?这是因为能够被 float ()函数 转换 的字符串需要满足数值型的字符串,比如“1.2”、“3”、“-1.01”等等。python中,可以使用内置的 float ()函数将字符串 string 对象作为形参进行类型的 转换 ,并以浮点数的类型值返回,并不修改原字符串 string 对象。