我希望了解float16
和float32
在结果精度方面的实际差异。例如,Numpy
允许您选择所需数据类型的范围(np.float16, np.float32, np.float64)
。我担心的是,如果我决定使用float 16来保留内存并避免可能的溢出,那么与float32相比,这会造成最终结果的丢失吗?
谢谢
答案 0 :(得分:7)
a = np.array([0.123456789121212,2,3], dtype=np.float16)
print("16bit: ", a[0])
a = np.array([0.123456789121212,2,3], dtype=np.float32)
print("32bit: ", a[0])
b = np.array([0.123456789121212121212,2,3], dtype=np.float64)
print("64bit: ", b[0])
答案 1 :(得分:3)
float32是32位数字-float64使用64位。
这意味着float64占用的内存是原来的两倍-在某些计算机体系结构中,对其进行操作可能会慢很多。
但是,float64可以比32位浮点数更准确地表示数字。
它们还允许存储更大的数字。
对于您的Python-Numpy项目,我确定您知道输入变量及其性质。
要做出决定,我们作为程序员需要自问
如果将我所在城市的天气数据存储为 [12.3、14.5、11.1、9.9、12.2、8.2]
第二天的预测输出可能为11.5或11.5164374
您认为是否需要存储浮点数32或浮点数64?