2011-03-15 22 views
4

我想在駐留在從蟒使用numpy.save書面文件的C程序來訪問的數據(文件...)。到目前爲止,我正在尋找一種方法來調用C版本的numpy.load C程序,但似乎沒有可直接訪問的C版本,因爲numpy.load使用了pickle模塊。另一解決方案是,開始從℃的嵌入式Python解釋並調用numpy.load在於解釋器,應返回numpy的陣列,我可以以通常的方式再接入。但是最後appraoch似乎有點沉重,因爲我必須使用翻譯。有沒有更好的辦法直接加載numpy的陣列爲C?加載numpy的陣列成C從所保存與numpy.save(...)

回答

3

.npy格式是不是真的打算從NumPy的外部讀取。有很多可用的格式,提供優秀的C和Python庫,如HDF5和NetCDF,所以我看不出有什麼理由從C訪問本地NumPy文件。

如果你想這樣做,無論如何是the docs of the .npy format。除非將Python對象存儲在數組中,否則它不會在內部使用pickle(但在這種情況下,我想知道您將如何處理C程序中的這些對象)。

+1

一個更好的鏈接,NPY格式:https://github.com/numpy/numpy/blob/master/doc/neps/npy-format.txt – 2011-03-15 18:54:49

9

您應該檢查這個小庫。我發現它非常有用。

https://github.com/rogersce/cnpy

+0

但你如何將它轉換爲numpy的數組和C++或OpenCV可以理解的東西而不是cnpy :: NpyArray? 'cnpy :: NpyArray arr = cnpy :: npy_load(「E:\ datasets \ hand \ multi-user-egocentric \ subject1 \ abdadd \ 000000_depth.npy」);'' – 2017-06-13 01:21:01