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

时间:2014-08-27 23:24:00

标签: python

在我的PYTHON程序中,我正在加载很多(浮动)数字供以后使用。我说的是1亿或更多的数字。似乎我遇到RAM上的内存空间问题。由于我保存的数字不需要具有高精度(3-4位数就足够了)并且通常很小(在-1000 ... 1000范围内)我不使用64位浮点数提供的精度。

是否有可能使用更少的内存(可能是8位或16位)来保存浮点数?

谢谢!

2 个答案:

答案 0 :(得分:2)

我会使用numpy库中的类型,它提供以下类型的兴趣:

float_
float16
float32
float64

所以,如果你想要一个16位浮点数(1个符号位,5个指数,和 10为尾数),您可以使用以下内容:

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

另见data types in NumPy

答案 1 :(得分:1)

使用struct包的f格式将它们打包成浮点格式值数组。