2013-12-20 4 views
3

저 차원에서 Cython을 사용하여 2D 배열 전반의 흐름 문제를 해결하는 라이브러리를 개발합니다. 이러한 배열이 numpy 배열 인 경우 정적으로 입력 할 수 있으므로 해당 배열에 임의 액세스하는 Python 인터프리터 오버 헤드를 피할 수 있습니다. 크기가 너무 커서 메모리에 맞지 않는 배열을 처리하기 위해 numt 대신 pytables에서 hd5file 배열을 사용할 계획이지만 정적으로 CArray를 입력 할 수 있는지는 알 수 없습니다.Cython에서 h5file 배열을 정적으로 입력 할 수 있습니까?

Cython에서 hd5file CArrays를 정적으로 입력하여 무작위로 배열에 액세스 할 때 Python 인터프리터 오버 헤드를 피할 수 있습니까?

답변

1

h5py 패키지를 사용하는 경우 제공된 데이터 세트에서 numpy.asarray()을 사용할 수 있습니다. 그런 다음 처리 방법을 이미 알고있는 더 익숙한 NumPy 배열을 사용할 수 있습니다.

asarray()을 수행 할 때 성능이 크게 저하되는 몇 년 전까지 h5py에 관련된 버그가 있었지만 해결되었으므로이 방법을 시도하면 매우 오래된 버전을 사용하지 마십시오.