提示错误
TypeError: unsupported operand type(s) for -: 'map' and 'map'
源码为:
from numpy import *
def loadDataSet(fileName): #加载数据集
dataMat = []
fr = open(fileName)
for line in fr.readlines():
curLine = line.strip().split('\t')
fltLine = map(float, curLine)
dataMat.append(fltLine)
return dataMat
解决方法
fltLine =list(map(float, curLine))
原因:
fltLine = map(float, curLine) 在python2中返回的是一个list类型数据,而在python3中该语句返回的是迭代器
在解决上面的错误之后,又提示错误:
ValueError: could not convert string to float:‘2 3’
这是因为我自己创建测试数据集是格式错误导致的
所以数据集的格式应为:两个数之间不应该有空格而是‘tab’,如果有空格的话就会认成字符串(或检查是否有换行符 \n,制表符 \t 或空字符串 ‘ ’
)