从用numpy.save(...)保存的文件将numpy数组加载到C中

Chr*_*ian 5 c c++ python numpy

我想访问一个C程序中的数据,该程序位于使用numpy.save(...)从python编写的文件中。到目前为止,我一直在寻找一种方法来调用我的C程序numpy.load的C版本,但是似乎没有可直接访问的C版本,因为numpy.load使用pickle模块。另一个解决方案是从C启动嵌入式python解释器,然后在该解释器中调用numpy.load,该解释器应返回numpy数组,然后可以按常规方式访问该数组。但是,最后一个方法看起来有点沉重,因为我必须使用解释器。有没有更好的方法将numpy数组直接加载到C中?

Sve*_*ach 5

.npy格式并不是真的要从NumPy外部读取。同时提供出色C和Python库的多种格式,例如HDF5和NetCDF,因此我看不到任何从C访问本地NumPy文件的原因。

如果仍然要执行此操作,请参阅以下.npy格式的文档。除非您将Python对象存储在数组中,否则它不会在内部使用pickle(但是在这种情况下,我想知道您将如何处理C语言中的对象)。