2011-03-15 8 views
4

numpy.save를 사용하여 파이썬에서 작성된 파일에있는 C 프로그램의 데이터에 액세스하고 싶습니다. ...). 지금까지, 나는 C 프로그램의 numpy.load를 호출하는 방법을 찾고 있었지만 numpy.load가 pickle 모듈을 사용하기 때문에 C 프로그램이 직접 액세스 할 수없는 것으로 보인다. 또 다른 해결책은 C에서 임베디드 Python 인터프리터를 시작한 다음 해당 인터프리터에서 numpy.load를 호출하는 것입니다.이 인터프리터는 numpy 배열을 반환해야하며 일반적인 방식으로 액세스 할 수 있습니다. 그러나 마지막 appraoch는 내가 해석기를 사용해야하기 때문에 무거운 것 같다. 직접 numpy 배열을 C에로드하는 더 좋은 방법이 있습니까?numpy.save (...)로 저장된 파일에서 numpy 배열을 C로로드하십시오.

답변

3

.npy 형식은 실제로 NumPy 외부에서 읽을 수 없습니다. HDF5 및 NetCDF와 같은 우수한 C 및 Python 라이브러리를 제공하는 데 사용할 수있는 다양한 형식이 있으므로 C에서 기본 NumPy 파일에 액세스 할 수있는 이유가 전혀 없습니다.

어쨌든이 작업을 수행하려는 경우 여기 the docs of the .npy format입니다. 배열에 파이썬 객체를 저장하지 않으면 피클을 내부적으로 사용하지 않습니다 (이 경우 C 프로그램의 코드로 어떤 작업을 할 것인지 궁금합니다). http://www.scipy.org/Cookbook/C_Extensions/NumPy_arrays

+1

NPY 형식에 대한 더 나은 링크 : https://github.com/numpy/numpy/blob/master/doc/neps/npy-format.txt –

9

당신은이 작은 lib 디렉토리를 확인해야합니다 :

+0

하지만 당신은이 변환 어떻게 NumPy와에 배열 및 C + + 또는 OpenCV cnpy :: NpyArray보다는 이해할 수있는 무언가? 'cnpy :: NpyArray arr = cnpy :: npy_load ("E : \ datasets \ hand \ multi-user-egocentric \ subject1 \ abdadd \ 000000_depth.npy"); –

관련 문제