从使用numpy.save(...)保存的文件中加载numpy数组到C语言中
我想在一个C程序中访问一个文件里的数据,这个文件是用Python的numpy.save(...)写的。到目前为止,我一直在寻找一种方法,可以在我的C程序中调用numpy.load的C版本,但似乎没有直接可用的C版本,因为numpy.load使用了pickle模块。另一种解决方案是从C程序启动一个嵌入式的Python解释器,然后在这个解释器中调用numpy.load,这样可以返回一个numpy数组,我就可以像平常一样访问它。不过,最后这种方法感觉有点复杂,因为我需要使用解释器。有没有更好的方法可以直接把numpy数组加载到C中呢?
1 个回答
7
.npy
格式其实并不是为了让NumPy以外的程序来读取的。市面上有很多其他格式,比如HDF5和NetCDF,它们都有很好的C和Python库,所以我觉得没有必要从C语言去访问原生的NumPy文件。
如果你还是想这么做,这里有关于.npy
格式的文档。这个格式内部并不使用pickle,除非你在数组里存储了Python对象(但如果是这样的话,我就想知道你在C程序里打算怎么处理这些对象)。