如何对转换为字节串的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, :] .

如何解码整个数组?

实际上numpy.fromstring()返回的是1024X1024的一维数组,而不是二维数组,您需要做的就是将其重塑为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)

最新更新