提问人:zell 提问时间:11/17/2022 最后编辑:zell 更新时间:11/17/2022 访问量:102
为什么 numpy 会为 np.float16(3.0) + 0 和 np.float32(3.0) + 0 进行类型转换?
Why does numpy make a type casting for np.float16(3.0) + 0 and np.float32(3.0) + 0?
问:
您能解释一下为什么要进行这种类型的铸造吗?
In [49]: type(np.float16(3.0) + 0)
Out[49]: numpy.float64
In [50]: type(np.float32(3.0) + 0)
Out[50]: numpy.float64
尽管以下工作按预期进行
In [52]: type(np.float16(3.0) + np.float16(0))
Out[52]: numpy.float16
In [53]: type(np.float32(3.0) + np.float32(0))
Out[53]: numpy.float32
问题是我们什么时候这样做,为什么一切都是向上投射到 ,而不是分别向 和?np.float16(3.0) + 0
np.float16(3.0) + 0
numpy.float64
numpy.float16
numpy.float32
答: 暂无答案
上一个:浮点数学坏了吗?
评论
np.float16(10)+np.float16(0)
0
float64
float16
np.array(0, float)