2016-10-11 54 views
0

我有一個列表np.arrays,代表島>島>測地點在島上。ValueError比較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,但我無論如何都得到相同的錯誤。

我想檢查當前測地點是否已經在列表中的任何島嶼列表。點是多維的,我認爲這是問題的來源。

+2

你能展示一個你的數據結構的詳細例子嗎? – Acepcs

回答

0

在標量上下文中使用布爾數組(如if語句)時會出現此錯誤。或者可能在表達式的in部分。

point的數組,還有group的數組列表?

一般來說in在使用數組時不是一個好的測試。

獲取更多幫助打印pointgrouppoint in group。或者至少是他們的類型,形狀和dtype。

製作一個小列表point,並專注於執行in測試或同等測試。你如何判斷一個人是否等於另一個? point1 == point2