在 Python 和 MySQL 中存储科学记数法的最有效方式
Most efficient way to store scientific notation in Python and MySQL
所以我想存储很多数字,我想优化存储 space。
生成的很多数字都具有相当高的精度浮点数,因此:
0.000000213213 或 323224.23125523 - 长、高内存浮动。
我想找出最好的方法,在 Python 和 MySQL(MariaDB) 中 - 以最小数据大小存储数字。
所以 2.132e-7 或 3.232e5,只是为了尽可能少地存储它,我可以指定小数范围 - 但删除 n 位小数后的信息。
我假设存储为 DOUBLE 是可行的方法,但我可以截断精度并节省 space 吗?
我正在考虑在 Python 中进行一些数字格式化/截断,然后仅作为 DOUBLE 进行正常存储 - 但实际上会保存任何 space 而不是立即存储双精度附有 N 位小数。
谢谢!
所有 python 浮点数具有相同的精度并占用相同的存储量。如果你想减少整体存储 numpy 数组应该这样做。
另一方面,如果您试图通过 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'
所以我想存储很多数字,我想优化存储 space。
生成的很多数字都具有相当高的精度浮点数,因此: 0.000000213213 或 323224.23125523 - 长、高内存浮动。
我想找出最好的方法,在 Python 和 MySQL(MariaDB) 中 - 以最小数据大小存储数字。
所以 2.132e-7 或 3.232e5,只是为了尽可能少地存储它,我可以指定小数范围 - 但删除 n 位小数后的信息。
我假设存储为 DOUBLE 是可行的方法,但我可以截断精度并节省 space 吗?
我正在考虑在 Python 中进行一些数字格式化/截断,然后仅作为 DOUBLE 进行正常存储 - 但实际上会保存任何 space 而不是立即存储双精度附有 N 位小数。
谢谢!
所有 python 浮点数具有相同的精度并占用相同的存储量。如果你想减少整体存储 numpy 数组应该这样做。
另一方面,如果您试图通过 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'