numpy float32和float64真实的

r6l8ljro  于 2023-08-05  发布在  其他
关注(0)|答案(3)|浏览(177)

我想了解float16float32在结果精度方面的实际差异。例如,NumPy允许您选择所需的数据类型(np.float16, np.float32, np.float64)的范围。我担心的是,如果我决定使用float16来保留内存并避免可能的溢出,那么与float32相比,这会导致最终结果的丢失吗?

mqkwyuun

mqkwyuun1#

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])

字符串

  • 16位:0.1235
  • 32位:0.12345679
  • 64位:0.12345678912121212
ggazkfy8

ggazkfy82#

float 32是一个32位的数字-float 64使用64位。
这意味着float 64占用了两倍的内存-在某些机器架构中,对它们进行操作可能会慢得多。
然而,float 64可以比32位浮点数更准确地表示数字。
它们还允许存储更大的数字。
对于您的Python-Numpy项目,我相信您知道输入变量及其性质。
要做出决定,我们作为程序员需要问自己
1.我的输出需要什么样的精度?
1.速度不是问题吗?
1.百万分之几的精度是多少?
一个简单的例子是,如果我将我所在城市的天气数据存储为[12.3,14.5,11.1,9.9,12.2,8.2]
第二天的预测输出可能为11.5或11.5164374
你认为有必要存储浮点数32或浮点数64吗?

tyky79it

tyky79it3#

float32比float64精确度低,但比float64快,float64比float32精确,但消耗更多内存。如果精度比速度更重要,可以使用float64。如果速度比精度更重要,可以使用float32。

相关问题