2016-02-28 30 views
0

我一直在嘗試使用numpy的Python的繪製一些數據。但是我得到一個錯誤,我不明白:Numpy:ValueError:具有多個元素的數組的真值是不明確的。使用a.any()或a.all()

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

而這應該會導致錯誤(第三行)行:

def T(z): 
for i in range(3): 
    if (z <= z_tbl[i+1]): 
     return T0_tbl[i]+a_tbl[i]*(z-z_tbl[i]) 
return 0 

這些名單只是一些列表整數,z也是一個整數

我該如何解決它?

+0

什麼''z''和' 'z_tbl''? – gsmafra

+0

z_tbl = [0,11000,20000,32000,47000]和z是整數 –

回答

1

要麼zz_tbl[i+1]是numpy的陣列。對於numpy的陣列,豐富的比較(==<=>=,...)返回另一個(布爾)numpy的陣列。

一個numpy的陣列上bool會給你,你所看到的異常:

>>> a = np.arange(10) 
>>> a == 1 
array([False, True, False, False, False, False, False, False, False, False], dtype=bool) 
>>> bool(a == 1) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

numpy的是想告訴你該怎麼做:

>>> (a == 1).any() # at least one element is true? 
True 
>>> (a == 1).all() # all of the elements are true? 
False 
+0

因此,如何是,我的z_tbl是numpy的數組?我只是不明白,爲什麼比較返回另一個數組。它應該返回一個布爾值,不是嗎? –

相關問題