2014-08-28 38 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)一次,然后它在一个元素就会比较(标量)的(标量)结果,并为结果创建一个布尔数组。