Python返回地图对象

时间:2018-05-01 12:24:03

标签: python python-3.x numpy numpy-ndarray

我是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

我很难搞清楚这一点。任何帮助都会很棒!!

1 个答案:

答案 0 :(得分:5)

正如PM 2Ring的评论中提到的那样,你的书在使用Python 3时似乎正在使用Python 2. map函数在Python 2中返回一个列表,但在Python 3中它返回一个映射对象除非您明确地将其转换为列表。您应该可以通过更改此行来使代码工作:

fltLine = map(float,curLine)

要:

fltLine = list(map(float,curLine))