在Python和MySQL中存储科学记数法的最有效方法

时间:2017-12-16 05:53:25

标签: python mysql types double storage

所以我试图存储很多数字,我想优化存储空间。

生成的大量数字具有相当高的精度浮点数,因此: 0.000000213213或323224.23125523 - 长,高内存浮点数。

我想弄清楚Python和MySQL(MariaDB)的最佳方法 - 存储数据量最小的数字。

所以2.132e-7或3.232e5,基本上只是用尽可能少的足迹存储它,我可以指定一个小数范围 - 但是在n个小数后删除信息。

我假设存储为DOUBLE是可行的方法,但我是否可以截断精度并节省空间?

我正在考虑使用Python中的数字格式化/截断,然后只是正常存储,因为DOUBLE可以工作 - 但这实际上会节省任何空间,而不是立即存储附加了N位小数的双精度。

谢谢!

2 个答案:

答案 0 :(得分:1)

所有python浮点数具有相同的精度并占用相同的存储量。如果你想减少整体存储,那么numpy数组应该可以解决问题。

答案 1 :(得分:0)

另一方面,如果你试图通过json或xml最小化数字的表示,你可以使用f-strings。

>>> from math import pi
>>> pi
3.141592653589793

>>> f'{pi:3.2}.'
 '3.1.'
>>> bigpi = pi*10e+100
>>> bigpi
 3.141592653589793e+101

>>> f'{bigpi:3.2}'
 '3.1e+101'