可以使用.tobytes()函数将numpy数组转换为字节.

如何将其从字节数组解码回numpy数组?

>>k=i.tobytes()

>>np.frombuffer(k)==i

False

也try 过uint8.

推荐答案

你正在做的事情有几个问题:

  1. frombuffer将始终将输入解释为一维array.这是documentation人中的第一行.你得重新塑造自己.

  2. 默认的dtypefloat.因此,如果没有序列化out float,那么就必须手动指定dtype(事先没有人知道字节流是什么意思:你必须说出它们代表什么).

  3. 如果要确保数组相等,必须使用np.array_equal.使用==将执行元素操作,并返回numpy个布尔数组(这可能不是您想要的).

如何将其从字节数组解码回numpy数组?

例子:

In [3]: i = np.arange(28*28).reshape(28, 28)

In [4]: k = i.tobytes()

In [5]: y = np.frombuffer(k, dtype=i.dtype)

In [6]: y.shape
Out[6]: (784,)

In [7]: np.array_equal(y.reshape(28, 28), i)
Out[7]: True

嗯.

Python-3.x相关问答推荐

Pandas groupby基于索引的连续列值相等

Python:字典和列表:在列表字典中搜索子列表的有效方法

数组列的极点成对求和

regexp多重前瞻行为的解释

为什么 tkinter 在 tkinter 窗口外计算鼠标事件?

Django在POST到外部URL时如何进行CSRF保护? 更新

如何将 WebDriver 传输到导入的测试?

将值从函数传递到标签

在 python f-string 中使用 \u

位对的距离

段落中句子的索引

具有函数值的 Python 3 枚举

python3:字节与字节数组,并转换为字符串和从字符串转换

为什么包含类的名称不被识别为返回值函数注释?

python total_ordering:为什么使用 __lt__ 和 __eq__ 而不是 __le__?

tensorflow 中 numpy.newaxis 的替代方案是什么?

如何在 Python3 中添加带有标志的命令行参数?

Python的max函数有多高效

try 在 Mac OS 中运行此命令pipenv install requests时出错

连接 dict 值,它们是列表