pickle.dumps或
numpy.save对重构任意NumPy数组所需的所有信息进行编码,即使存在字节序问题,不连续的数组或奇怪的元组dtype。字节序问题可能是最重要的;您不希望
array([1])突然
array([16777216])因为在大型字节序的计算机上加载阵列而变得无所作为。
pickle尽管
save有其自身的优势(
npy格式合理性给出),它可能是更方便的选择。
该
pickle选项:
import picklea = # some NumPy arrayserialized = pickle.dumps(a, protocol=0) # protocol 0 is printable ASCIIdeserialized_a = pickle.loads(serialized)
numpy.save使用二进制格式,它需要写入文件,但是您可以使用以下方法解决
io.BytesIO:
a = # any NumPy arraymemfile = io.BytesIO()numpy.save(memfile, a)memfile.seek(0)serialized = json.dumps(memfile.read().depre('latin-1'))# latin-1 maps byte n to unipre pre point n并反序列化:
memfile = io.BytesIO()memfile.write(json.loads(serialized).enpre('latin-1'))memfile.seek(0)a = numpy.load(memfile)


