我是python的新手并且遵循Python中的机器学习一书。在一个例子中我有
min(datMat[:,0])
应该返回
matrix([[-5.379713]])
但我得到的是
matrix([[<map object at 0x000002130BF3E240>]], dtype=object)
当我在代码中包含它时
rangeJ = float(max(dataSet[:,j]) - minJ)
我收到错误“TypeError:不支持的操作数类型 - :'map'和'map'”。
这是我用来生成dataMat的代码
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
我很难搞清楚这一点。任何帮助都会很棒!!
答案 0 :(得分:5)
正如PM 2Ring的评论中提到的那样,你的书在使用Python 3时似乎正在使用Python 2. map
函数在Python 2中返回一个列表,但在Python 3中它返回一个映射对象除非您明确地将其转换为列表。您应该可以通过更改此行来使代码工作:
fltLine = map(float,curLine)
要:
fltLine = list(map(float,curLine))