减少前端编码的包含numpython dict的numpy数组的大小
我有一个python字典,其中包含大小为(2,99,5)的NumPy数组作为其值,因此dict如下所示:减少前端编码的包含numpython dict的numpy数组的大小,python,python-3.x,numpy,python-3.6,python-3.5,Python,Python 3.x,Numpy,Python 3.6,Python 3.5,我有一个python字典,其中包含大小为(2,99,5)的NumPy数组作为其值,因此dict如下所示: { “key1”:大numpy数组, “key2”:大numpy数组, “key3”:大numpy数组, } 我正试着把这篇短文发到前端 首先,我使用tolist方法将所有这些NumPy数组转换为python列表,然后使用JSON转储dict JSON文件的大小为349kb。我想知道对字典进行编码的最佳方法是什么,以减少编码速度仍然很快的结果文件的大小 我想到了压缩JSON。压缩这样一个文
{
“key1”:大numpy数组,
“key2”:大numpy数组,
“key3”:大numpy数组,
}
我正试着把这篇短文发到前端
首先,我使用tolist
方法将所有这些NumPy数组转换为python列表,然后使用JSON转储dict
JSON文件的大小为349kb。我想知道对字典进行编码的最佳方法是什么,以减少编码速度仍然很快的结果文件的大小
我想到了压缩JSON。压缩这样一个文件的最佳方式是什么
提前谢谢。Json不会压缩文件。它格式化了结构。文件大小可能会以这种方式增加 您可以使用gzip.compress()
您可以在这里看到,Json将开销放在gzip压缩的地方。Json不会压缩文件。它格式化了结构。文件大小可能会以这种方式增加 您可以使用gzip.compress() 您可以在这里看到,Json在gzip压缩的地方增加了开销。gzip在RAM和CPU开销方面非常轻。而gzip在RAM和CPU开销方面非常轻。
In [1]: from sys import getsizeof
In [2]: import numpy as np
In [3]: a = np.random.randn(100,20)
In [4]: import gzip
In [5]: az = gzip.compress(a)
In [6]: getsizeof(a)
Out[6]: 16112
In [7]: getsizeof(az)
Out[7]: 15415
In [8]: import json
In [10]: aj = json.dumps(a.tolist())
In [11]: getsizeof(aj)
Out[11]: 41532