Python错误:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()

时间:2016-04-19 10:54:01

标签: python list python-2.7 logical-operators

我想比较列表中的项目,这是我的代码:

for i in range(200):
        if g[i]==1 and d[4]==1:
           TP += 1
        elif g[i]==1 and d[4]==0:
           FP += 1
        elif g[i]==0 and d[4]==1:
           FN += 1
        elif g[i]==0 and d[4]==0:
           TN += 1

我得到了这个错误:

  

具有多个元素的数组的真值是不明确的。   使用a.any()或a.all()

我不知道如何使用上面推荐的语法,如何解决它,谢谢。

1 个答案:

答案 0 :(得分:3)

正如作者在评论中所提到的,d是一个二维Numpy数组。

that问题的答案解释了将Numpy中的多维数组进行比较需要进行您想要执行的比较(任何元素是按位为真或所有元素都是按位真)。
这就是您必须使用(g[i] - d[4]).any()(g[i] - d[4]).all()指定所需比较的原因。