奇怪的是,np.log(2**64-1)
返回浮点数44.3614196
但是np.log(2**64)
返回
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute 'log'
问题:
AttributeError
而不是抱怨参数的大小? fyi:其他numpy超越函数(sqrt
,log10
,cos
...)的相同行为
答案 0 :(得分:2)
NumPy没有足够大的原生整数dtype来容纳2**64
,因此它得到object
dtype处理。 object
的{{1}} dtype处理是在对象上寻找numpy.log
方法并调用它,这就是log
的来源。