*不支持的操作数类型:map和map

2024-05-17 04:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试调试以下代码,在那里我得到了上述错误消息: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

误差在平方计算中突然出现。所有数据类型都是纽比·恩达雷. 在


Tags: lambda代码消息类型map公平错误np
2条回答

Python 3中,map()返回一个iterable,而在Python 2中,它返回一个列表。python iterable上的任何数学操作,如平方(**),都会抛出类似的错误。行:

d2 = d ** 2

抛出python3中提到的错误,因为d是函数map()返回的iterable。很可能您正在使用python3。所以您需要在任何数学运算之前将d转换成list,比如d = np.array(list(map(mahalanobis, data)))。在

map转换为list

d = np.array(list(map(mahalanobis, data)))

相关问题 更多 >