【发布时间】:2015-07-08 21:20:43
【问题描述】:
假设我在 Python 中有一个简单的数组:
>>> x = [1.0, 2.0, 3.0, 4.0]
腌制后,它的尺寸相当小:
>>> pickle.dumps(x).__len__()
44
如果我用一个numpy数组,怎么会这么大?
>>> xn = np.array(x)
>>> pickle.dumps(xn).__len__()
187
将其转换为不太精确的数据类型只会有一点帮助...
>>> x16 = xn.astype('float16')
>>> pickle.dumps(x16).__len__()
163
其他 numpy/scipy 数据结构(如稀疏矩阵)也不能很好地腌制。为什么?
【问题讨论】:
-
pickle.loads(pickle.dumps(sparse.coo_matrix(x)))适合我。