奇怪的是, np.log(2**64-1)
返回float 44.3614196
但是np.log(2**64)
返回
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute 'log'
问题:
- 为什么numpy在大于2^64-1的参数上balk?
- 为什么错误
AttributeError
而不是对参数大小的投诉?
fyi:其他numpy超验功能的同一贝纳维尔(sqrt
,log10
,cos
...(
numpy没有足够大的本机整数dtype容纳 2**64
,因此可以使用object
dtype处理。object
numpy.log
的DTYPE处理是在对象上查找log
方法并调用它,这是AttributeError
来自的位置。