我是 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
我很难弄清楚这一点。任何帮助都会很棒!!
请您参考如下方法:
正如 PM 2Ring 的评论中所建议的那样,您的书似乎在使用 Python 2 而您正在使用 Python 3。map 函数在 Python 2 中返回一个列表,但在 Python 3 中它除非您明确将其转换为列表,否则返回 map 对象。您应该能够通过更改此行来使您的代码工作:
fltLine = map(float,curLine)
收件人:
fltLine = list(map(float,curLine))
