[英]Greater of two numpy arrays, element-wise
我有兩個numpy數組,並且我試圖找到更大的數組(明智的選擇,即所有元素都應該更大)
import numpy as np
a = np.array([4,5,6])
b = np.array([7,8,9])
if b > a:
print 'True'
但是我沒有得到想要的輸出並出現錯誤
使用np.all()
In [1]: import numpy as np
In [2]: a = np.array([4,5,6])
In [3]: b = np.array([7,8,9])
In [4]: np.all(b > a)
Out[4]: True
if all(b>a):
print 'True'
對於多維數組,請使用:
if np.all(b>a):
print 'True'
但是, all()
對於單維數組更快,如果數組很大,則可能很有用:
>>> timeit('a = np.array([4,5,6]); b = np.array([7,8,9]); all(a>b)',number=100000,setup='import numpy as np')
0.34104180335998535
>>> timeit('a = np.array([4,5,6]); b = np.array([7,8,9]); np.all(a>b)',number=100000,setup='import numpy as np')
0.9201719760894775
b > a
產生一個包含True
/ False
值的數組。
但是,Python無法確定具有多個元素的NumPy數組應為True
還是False
。 應該如何評估諸如array([True, False, True])
類的array([True, False, True])
? 由於存在潛在的歧義而引發ValueError
。
相反,您需要檢查b > a
中的所有值是否均為True
。 使用NumPy的all()
執行此操作:
if (b > a).all():
print 'True'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.