我是机器学习的新手。尝试将int用于字母时遇到了一些问题。我在Mac OS上使用Python 3.5。这是我的代码:将字符串(字母)从文本文本转换为整数
def file2matrix(filename):
fr = open(filename)
numberOfLines = len(fr.readlines())
returnMat = zeros((numberOfLines, 3))
classLabelVector = []
fr = open(filename)
index=0
for line in fr.readlines():
line = line.strip()
listFromLine1 = line.split('\t')
listFromLine = zeros(3)
i = 0
for value in listFromLine1:
if value.isdigit():
valueAsInt = int(value)
listFromLine[i] = valueAsInt
i += 1
returnMat[index, :] = listFromLine[0:3]
classLabelVector.append(int(listFromLine1[-1]))
index += 1
return returnMat, classLabelVector
这是我的txt文件:
23 8 1 f
7 8 5 j
5 9 1 j
6 6 6 f
这是错误:
classLabelVector.append(int(listFromLine1[-1])) ValueError: invalid literal for int() with base 10: 'f'
任何人可以帮助我这些问题?
你做这个TextEdit中的文件也许? '\\ rtf1'看起来像一个富文本标题,比如会出现在一个富文本文件中(与纯文本不一样)。 –
是的,我在TextEdit中做到了,但是我已经将它转换为.txt。那么你能告诉我应该在哪里创建我的文件? – Cassie
如果您已将其创建为纯文本,则该错误应与您发布的内容不同。是吗?如果你仍然在那里看到'\\ rtf1',那么你可能还没有把它变成纯文本。 –