2014-08-28 75 views
0

設a是長度爲n的numpy數組。 是否聲明 a == max(a) 計算表達式max(a) n次或只是一次?Numpy數組逐個元素的比較優化

+0

您可能想要['numpy.amax'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.amax.html)而不是純Python ['max'](https: //docs.python.org/3/library/functions.html#max)。 – 2014-08-28 18:59:29

回答

1

它只評估max一次。你可以這樣自己通過編寫自己的功能測試:

def mymax(x): 
    print("Calling mymax.") 
    return max(x) 

然後嘗試

a == mymax(a) 
+0

太棒了!也感謝有關如何測試它的見解! – user18097 2014-08-28 17:03:49

1

它計算max(a)一次,然後它在一個元素就會比較(標量)的(標量)結果,併爲結果創建一個布爾數組。