如何反序列化一个被转换为bytestring的numpy数组?

时间:2015-06-07 19:47:15

标签: python numpy

我需要将一个numpy数组序列化为一些与JSON兼容的表单。由于我正在使用的框架不允许我访问JSON编码器/解码器对象,因此我将一个numpy数组序列化为可以然后编组为JSON的东西。我选择array.tobytesarray.tostring(两者似乎基本相同)。

下面是一个说明我问题的例子:

import numpy as np

a = np.random.rand(1024, 1024)  # create array of random values
b = array.tobytes()  # serialize array
a2 = np.fromstring(b)

当我检查a2的值时,我发现它只包含原始a的第一行。换句话说,a2 == a[0, :]

如何解码整个阵列?

1 个答案:

答案 0 :(得分:1)

实际上numpy.fromstring()返回一个2维数组的1024X1024 intead的单维数组,所有你需要做的就是重塑为1024X1024,

试试这个: -

import numpy as np
a = np.random.rand(1024, 1024)  # create array of random values
b = array.tobytes()
np.fromstring(b).reshape(1024,1024)