【发布时间】:2010-10-16 07:09:17
【问题描述】:
pickle 模块在酸洗时似乎使用了字符串转义字符;这变得低效,例如在 numpy 数组上。考虑以下
z = numpy.zeros(1000, numpy.uint8)
len(z.dumps())
len(cPickle.dumps(z.dumps()))
长度分别为 1133 个字符和 4249 个字符。
z.dumps() 显示类似 "\x00\x00" (字符串中的实际零),但 pickle 似乎正在使用字符串的 repr() 函数,产生 "'\x00\x00'" (零是 ascii零)。
即("0" in z.dumps() == False) 和 ("0" in cPickle.dumps(z.dumps()) == True)
【问题讨论】:
-
您应该在此处为您的帖子添加一个特定问题。
-
你想序列化一个 Python 字符串还是一个 numpy 字节数组?
-
应该是 len(cPickle.dumps(z))
标签: python numpy pickle space-efficiency