问题描述
鉴于以下代码段,为什么 np.multiply.reduce
不会引发 FloatingPointError
而 arr[0] * arr[1]
会引发?这是一个错误吗?
import numpy as np
import sys
print(np.__version__,sys.version)
# 1.20.3 3.9.5 (tags/v3.9.5:0a7dcbd,May 3 2021,17:27:52) [MSC v.1928 64 bit (AMD64)]
arr = np.array([-54588,1235845941])
# (1)
with np.errstate(all='raise'):
result = np.multiply.reduce(arr)
# result is -1306909036 but there should have been a FloatingPointError,shouldn't it?
# (2)
with np.errstate(all='raise'):
result = arr[0] * arr[1]
# ---------------------------------------------------------------------------
# FloatingPointError Traceback (most recent call last)
# <ipython-input-17-7a30d8c0933e> in <module>
# 1 with np.errstate(all='raise'):
# ----> 2 result = arr[0] * arr[1]
# 3
# FloatingPointError: overflow encountered in long_scalars
这与numpy-doesnt-throw-floatingpointerror-for-dot-product有关吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)