我可以使用 myndarray.tobytes()
现在如何将它恢复为 ndarray?
使用 .tobytes()
方法文档中的示例:
>>> x = np.array([[0, 1], [2, 3]])
>>> bytes = x.tobytes()
>>> bytes
b'\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'
>>> np.some_magic_function_here(bytes)
array([[0, 1], [2, 3]])
原文由 Jonathan 发布,翻译遵循 CC BY-SA 4.0 许可协议
编辑后,您似乎走错了方向!
当只需要从这些字节重建时, 您不能使用
np.tobytes()
来存储包含所有信息(如形状和类型)的完整数组! 它只会保存 原始 数据(单元格值)并以 C 或 Fortran 顺序展平这些数据。现在我们不知道你的任务。但是你需要一些基于 序列化 的东西。有很多方法,最简单的是以下基于 python 的 pickle 的方法(此处的示例:python3!):
输出:
更好的选择是 joblib 的 pickle,它具有针对大型阵列的专门酸洗。 joblib 的函数是基于文件对象的,也可以使用 python 的 BytesIO 在内存中使用字节串。