我有一份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
但我得到的相同错误无论如何。
我试图检查当前的测地点是否已经在任何岛屿的列表列表中。点是多方面的,我认为问题来自哪里。
答案 0 :(得分:0)
当在标量上下文中使用布尔数组时会出现此错误,例如if
语句。或者也许在表达式的in
部分。
point
是一个数组,group
是一个数组列表吗?
通常,in
在使用数组时不是一个好的测试。
要获得更多帮助,请打印point
,group
,point in group
。或者至少他们的类型,形状和类型。
制作一个point
的小列表,并专注于执行in
测试或同等测试。你怎么知道一个人是否等于另一个? point1 == point2
?