在PYTHON中保存小于64位的浮点变量
在我的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中的数据类型 来了解更多信息。