我想使用numpy的loadtxt命令,所以我尝试了这个:
lines = loadtxt("D:/My Desktop/Enwate syllables.txt", comments="#", delimiter=",", unpack=False)
但是这很难用“无法将字符串转换为浮点数:b'\ xef \ xbb \ xbfen'”
我确实尝试了
f = open("D:/My Desktop/Enwate syllables.txt")
并且工作正常。我对loadtxt做错了什么?
PS。这不是编码问题,因为如上所示,“open”命令可以很好地处理它,我得到了文本行和所有内容。顺便说一句,该文件是一个简单的ascii文本文件,每行有一个单词。
答案 0 :(得分:0)
您需要事先提及dtype,以便numpy可以分配它 例如
from io import StringIO
j= StringIO(u'c 1\nd 2')
np.loadtxt(j)
以ValueError: could not convert string to float: c
但是
np.loadtxt(j,dtype={'names': ('char', 'num'),'formats': ('S1', 'i4')})
完美无缺。
因此,如果您的文本文件同时具有数字数据类型和字符数据类型,则需要使用dtype
PS - 如果你尝试只有数值loadtxt
的文件不会失败,所以我猜它的主数据类型是浮点数,如果你的文件有字符串,那么你需要使用dtype
作为根据您的字段输入