为什么 numpy 超越对大于 2^64-1 的整数参数给出"no attribute"错误?



奇怪的是, 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超验功能的同一贝纳维尔(sqrtlog10cos ...(

numpy没有足够大的本机整数dtype容纳 2**64,因此可以使用object dtype处理。object numpy.log的DTYPE处理是在对象上查找log方法并调用它,这是AttributeError来自的位置。

相关内容

最新更新