TypeError:+的不支持的操作数类型:' map'并且'漂浮'

时间:2018-03-08 07:27:56

标签: python

我在Colaboratory练习tesorflow,我的代码如下。 有一些问题,错误信息是

  

" TypeError:+的不支持的操作数类型:' map'并且'浮动'"

有人可以告诉我出了什么问题吗?谢谢!

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(20)
y = map(lambda x: x + np.random.randn(1), x)
a, b = np.polyfit(x, y, 1)
plt.plot(x, y, 'o', np.arange(20), a*np.arange(20)+b, '-');**

3 个答案:

答案 0 :(得分:2)

' Colaboratory简介'由Python2编写,正如@cdarke所说,map()在Python3中重新调整了一个地图对象。所以你应该把地图obj转换成一个列表。替换如下代码:

y = list(map(lambda x: x + np.random.randn(1), x))

答案 1 :(得分:0)

尝试替换

y = map(input1(x), x)

y = map(input1, x)

答案 2 :(得分:0)

Python 3中,map()返回一个可迭代,而在Python 2中,返回一个列表。在python可迭代和浮点数之间的任何数学运算(例如numpy的polyfit())都会引发类似的错误。该行:

a, b = np.polyfit(x, y, 1)

在Python 3中抛出上述错误,因为y是函数map()返回的可迭代对象。您可能正在使用Python3。因此,在进行任何数学运算之前,您需要将y转换为list,例如np.polyfit(x, list(y), 1)