Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python返回映射对象_Python_Python 3.x_Numpy_Numpy Ndarray - Fatal编程技术网

Python返回映射对象

Python返回映射对象,python,python-3.x,numpy,numpy-ndarray,Python,Python 3.x,Numpy,Numpy Ndarray,我对python相当陌生,并在python书中介绍了机器学习。我举了一个例子 min(datMat[:,0]) 应该会回来的 matrix([[-5.379713]]) 但我得到的是 matrix([[<map object at 0x000002130BF3E240>]], dtype=object) 我得到错误类型错误:不支持的操作数类型为-:“map”和“map” 这是我用来生成dataMat的代码 def loadDataSet(fileName): dat

我对python相当陌生,并在python书中介绍了机器学习。我举了一个例子

min(datMat[:,0])
应该会回来的

 matrix([[-5.379713]])
但我得到的是

 matrix([[<map object at 0x000002130BF3E240>]], dtype=object)
我得到错误类型错误:不支持的操作数类型为-:“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。在Python2中,map函数返回一个列表,但在Python3中,它返回一个map对象,除非您显式地将其转换为列表。您应该能够通过更改以下行使代码正常工作:

fltLine = map(float,curLine)
致:


正如pm2ring在评论中可能提到的,您的书似乎在使用python2,而您在使用python3。在Python2中,map函数返回一个列表,但在Python3中,它返回一个map对象,除非您显式地将其转换为列表。您应该能够通过更改以下行使代码正常工作:

fltLine = map(float,curLine)
致:


抱歉,我不知道您的问题的答案,但我怀疑这可能是Python2与Python3之间的问题,因为map的行为发生了变化。您使用的是哪个版本?python 3。。我也猜到了,但是很难解决这个问题。无论您使用什么代码来生成datMat,都有可能导致这里的问题。我们需要更多信息来帮助您调试。您好。。编辑了问题,这样更好。一旦我们能看到令人不快的代码,问题就显而易见了;抱歉,我不知道您的问题的答案,但我怀疑这可能是Python2与Python3之间的问题,因为map的行为发生了变化。您使用的是哪个版本?python 3。。我也猜到了,但是很难解决这个问题。无论您使用什么代码来生成datMat,都有可能导致这里的问题。我们需要更多信息来帮助您调试。您好。。编辑了问题,这样更好。一旦我们能看到令人不快的代码,问题就显而易见了;
fltLine = list(map(float,curLine))