1
다음 예와 NumPy와의 C-API (http://docs.scipy.org/doc/numpy/reference/c-api.html) (NumPy와 1.7+ 용),이 같은 cpp에있는 NumPy와 배열 데이터에 액세스하기 위해 노력하고있어 :는
#include <Python.h>
#include <frameobject.h>
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION // TOGGLE OR NOT
#include "numpy/ndarraytypes.h"
#include "numpy/arrayobject.h"
...
// here I have passed "some_python_object" to the C code
// .. and "some_python_object" has member "infobuf" that is a numpy array
//
unsigned long* fInfoBuffer;
PyObject* infobuffer = PyObject_GetAttrString(some_python_object, "infobuf");
PyObject* x_array = PyArray_FROM_OT(infobuffer, NPY_UINT32);
fInfoBuffer = (unsigned long*)PyArray_DATA(x_array); // DOES NOT WORK WHEN API DEPRECATION IS TOGGLED
때
error: cannot convert ‘PyObject* {aka _object*}’ to ‘PyArrayObject* {aka tagPyArrayObject*}’ for argument ‘1’ to ‘void* PyArray_DATA(PyArrayObject*)’
은 무엇 NumPy와 1.7+에서이 일을 합법적 인 방법이 될 것입니다 : 컴파일 할 때 API의 중단은, 내가 얻을 토글?
질문, C++ 코드에 관련된 대답. C-API를 사용하면 어떻게 될까요? – rhody
해당 C++ 코드는 C API를 사용하여 상위 수준 구조로 래핑합니다. 또한 원래 질문은 "나는 cpp에서 numpy 배열 데이터에 접근하려하고있다"고 말한다. – Quant