python - 字符串如何在python中转换为int?

标签 python numpy

机器学习实战第2章中,一个示例从文件中读取记录,每一行如下:

124  110 223 largeDoses

(忘了它的实际含义)

kNN.py 中的一个函数是:

 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()
          listFromLine = line.split('\t')
          returnMat[index,:] = listFromLine[0:3]
          classLabelVector.append(int(listFromLine[-1]))
         index += 1
     return returnMat,classLabelVector

问题是listFromLine[-1]是一个字符串('largeDoses'等),如何转换成int

在书中,它说 numpy 可以处理这个。

(摘自本书:你必须明确地告诉解释器你想要列表中最后一项的整数版本,否则它会给你字符串版本。通常,你必须执行此操作,但 NumPy 会为您处理这些细节。) 然而,

ValueError: invalid literal for int() with base 10: 'largeDoses' 

发生在

import kNN
kNN.file2matrix('dataset.txt')

顺便说一句,这本书的中文版和英文版不一样。 enter image description here

enter image description here

最佳答案

String(确实)无法转换为int,无论是在python中还是在其他环境中,

但是,

解决办法是

将机器学习(确实)付诸实践

如果所有 kNN 输入训练/交叉验证记录(也称为观察、示例)

遵守 [ 3x FEATURE, 1x LABEL] 的约定

使用:

classLabelVector.append( listFromLine[-1] )    # to .append a LABEL, not an int()

关于python - 字符串如何在python中转换为int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26302745/

相关文章:

python - 如何将代码对象保存在文件中?

python - 将文件夹中的所有文件名更改为其他Python名称

python - 了解应该绑定(bind)到对象实例的类范围变量

python - 溢出错误 : . .long int 太大

python - 如何在 numpy 中使用 dtype 构造一维数组

python - 使用数量时如何指定单位的标量乘数?

python - 如何找到特定单元格位置的单元格数据值列表?

python - 计算 - numpy python 错误

Python - 将颜色图应用于灰度 numpy 数组并将其转换为图像

python - Bokeh 与 Google App Engine 兼容吗?