我正在尝试调试以下代码,在那里我得到了上述错误消息:TypeError:不支持*:“map”和“map”的操作数类型
我在网上进行了公平搜索,我知道不支持square操作,但我无法完全理解如何解决它。在
我的代码如下:
mahalanobis = lambda p: distance.mahalanobis(p, means, covariances.T)
d = np.array(map(mahalanobis, data)) # Mahalanobis distance values
d2 = d ** 2 # MD squared
误差在平方计算中突然出现。所有数据类型都是纽比·恩达雷. 在
在Python 3中,
map()
返回一个iterable,而在Python 2中,它返回一个列表。python iterable上的任何数学操作,如平方(**
),都会抛出类似的错误。行:抛出python3中提到的错误,因为
d
是函数map()
返回的iterable。很可能您正在使用python3。所以您需要在任何数学运算之前将d
转换成list,比如d = np.array(list(map(mahalanobis, data)))
。在将
map
转换为list
:相关问题 更多 >
编程相关推荐