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))