从使用 numpy.save(...) 保存的文件中将 numpy 数组加载到 C 中
Posted
技术标签:
【中文标题】从使用 numpy.save(...) 保存的文件中将 numpy 数组加载到 C 中【英文标题】:Load a numpy array into C from a file that was saved with numpy.save(...) 【发布时间】:2011-03-15 15:59:11 【问题描述】:我想访问驻留在使用 numpy.save(...) 从 python 编写的文件中的 C 程序中的数据。到目前为止,我一直在寻找一种方法来调用我的 C 程序的 numpy.load 的 C 版本,但似乎没有可直接访问的 C 版本,因为 numpy.load 使用了 pickle 模块。另一种解决方案是从 C 启动嵌入式 python 解释器并在该解释器中调用 numpy.load,它应该返回 numpy 数组,然后我可以以通常的方式访问它。但是最后一种方法似乎有点沉重,因为我必须使用解释器。有没有更好的方法将 numpy 数组直接加载到 C 中?
【问题讨论】:
【参考方案1】:.npy
格式并不是真的要从 NumPy 外部读取。有许多格式可以同时提供优秀的 C 和 Python 库,例如 HDF5 和 NetCDF,所以我看不出有任何理由从 C 访问本机 NumPy 文件。
如果你想这样做,这里是the docs of the .npy
format。除非您将 Python 对象存储在数组中,否则它不会在内部使用 pickle(但在这种情况下,我想知道您将如何处理 C 程序中的那些对象)。
【讨论】:
以上是关于从使用 numpy.save(...) 保存的文件中将 numpy 数组加载到 C 中的主要内容,如果未能解决你的问题,请参考以下文章