如何用Python读取Julia序列化的三维矩阵二进制文件?
解决Julia序列化bin文件的Python读取问题
Julia的deserialize函数使用的是Julia专属的序列化协议,并非通用的二进制数组存储格式,所以Python直接读取字节串无法解析成三维矩阵。以下是两种可行的解决方法:
方法一:转存为通用跨语言格式(推荐)
在Julia中将数据转存为HDF5这类通用的多维数据存储格式,再用Python读取,这是跨语言数据交互的标准方案:
Julia端操作
首次运行需安装HDF5包:
using Pkg Pkg.add("HDF5")
转存数据:
using HDF5 data = deserialize("administration/data.bin") h5write("administration/data.h5", "matrix_data", data)
Python端操作
先安装h5py包:
pip install h5py
读取数据:
import h5py with h5py.File("administration/data.h5", "r") as f: data = f["matrix_data"][:] # 直接得到numpy三维数组
方法二:在Python中调用Julia的反序列化函数
如果不想重新存储数据,可以通过PyJulia库在Python中直接调用Julia的deserialize函数:
步骤1:安装依赖
确保系统已安装Julia并添加到环境变量,然后安装PyJulia:
pip install julia
步骤2:Python中读取数据
import julia # 首次运行需初始化Julia环境(仅需执行一次) julia.install() from julia import Serialization data = Serialization.deserialize("administration/data.bin") # 可选:转成numpy数组方便后续处理 import numpy as np data_np = np.array(data)
内容的提问来源于stack exchange,提问作者Manu Han
相关产品推荐
相关产品推荐

