Python 返回地图对象
Python returning map object
我是 python 的新手,正在阅读 Python 中的机器学习一书。在一个例子中,我有
min(datMat[:,0])
这应该是 return
matrix([[-5.379713]])
但我得到的是
matrix([[<map object at 0x000002130BF3E240>]], dtype=object)
当我将其包含在代码中时
rangeJ = float(max(dataSet[:,j]) - minJ)
我收到错误 "TypeError: unsupported operand type(s) for -: 'map' and '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
函数 returns Python 2 中的列表,但在 Python 3 中它 returns 是一个地图对象,除非您明确地将其转换为列表。您应该能够通过更改此行来使您的代码工作:
fltLine = map(float,curLine)
收件人:
fltLine = list(map(float,curLine))
我是 python 的新手,正在阅读 Python 中的机器学习一书。在一个例子中,我有
min(datMat[:,0])
这应该是 return
matrix([[-5.379713]])
但我得到的是
matrix([[<map object at 0x000002130BF3E240>]], dtype=object)
当我将其包含在代码中时
rangeJ = float(max(dataSet[:,j]) - minJ)
我收到错误 "TypeError: unsupported operand type(s) for -: 'map' and '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
函数 returns Python 2 中的列表,但在 Python 3 中它 returns 是一个地图对象,除非您明确地将其转换为列表。您应该能够通过更改此行来使您的代码工作:
fltLine = map(float,curLine)
收件人:
fltLine = list(map(float,curLine))