用于比较np.arrays的ValueError

时间:2016-10-11 03:29:21

标签: python numpy

我有一份np.arrays列表,代表岛屿>岛屿>岛上的测地点。

我试图使用:

if not groups:
    createNewGroup(point)
else:
    for group in groups:
        if point in group:
            continue
    else:
        createNewGroup(point)

正确创建了第一个岛屿,但对于第二个岛屿,我收到了这个错误:

File "A2.py", line 371, in findIslands
if point in group:
ValueError: The truth value of an array with more than 
one element is ambiguous. Use a.any() or a.all()

我已经研究过这个错误,并试图了解这是如何适用于我的情况,并尝试将.any().all()应用于point但我得到的相同错误无论如何。

我试图检查当前的测地点是否已经在任何岛屿的列表列表中。点是多方面的,我认为问题来自哪里。

1 个答案:

答案 0 :(得分:0)

当在标量上下文中使用布尔数组时会出现此错误,例如if语句。或者也许在表达式的in部分。

point是一个数组,group是一个数组列表吗?

通常,in在使用数组时不是一个好的测试。

要获得更多帮助,请打印pointgrouppoint in group。或者至少他们的类型,形状和类型。

制作一个point的小列表,并专注于执行in测试或同等测试。你怎么知道一个人是否等于另一个? point1 == point2