在PYTHON中保存小于64位的浮点变量

1 投票
2 回答
1542 浏览
提问于 2025-04-18 18:47

在我的PYTHON程序中,我需要加载很多(浮动)数字,以便后续使用。我说的是一亿个数字或者更多。看起来我在内存空间上遇到了问题,因为我保存的数字不需要很高的精度(3到4位数就足够了),而且通常比较小(范围在-1000到1000之间),所以我没有使用64位浮点数的精度。

有没有可能用更少的内存来保存一个浮动数字(也许是8位或16位)?

谢谢!

2 个回答

1

使用struct这个包里的f格式,把它们打包成浮点数格式的数组。

2

我会使用numpy库中的数据类型,它提供了一些我们感兴趣的类型:

float_
float16
float32
float64

所以,如果你想要一个16位的浮点数(1位符号位,5位指数,10位尾数),你可以使用以下代码:

import numpy as np
x = np.float16(10.0)

另外,你可以查看 NumPy中的数据类型 来了解更多信息。

撰写回答