【发布时间】:2017-12-22 12:53:22
【问题描述】:
毫无疑问,其他(也许是所有)语言都是这种情况,但我只在 Python 中进行过测试。我的问题是这样的: 对两个不同精度的值进行算术运算时,为什么 NumPy 会以精度最高的值的 dtype 返回结果?
例如
import numpy as np
single = np.array([[1, 2, 3], [4, 5, 6]], np.float32)
double = np.array([[1, 2, 3], [4, 5, 6]], np.float64)
diff = single-double
print "single data type -", single.dtype
print "double data type -", double.dtype
print "diff data type -", diff.dtype
产量:
单一数据类型 - float32
双数据类型 - float64
diff 数据类型 - float64
据我了解浮点精度,diff 表示的额外后半部分不准确。在这种情况下,将结果转换为最高精度而不是最低精度的原因是什么?
【问题讨论】: