2014-03-05 1 views
2

을 PyArray_SearchSorted를 사용하는 방법, 내가 함수에 전달 된 두 개의 배열에 접근하고있다 :는 C 확장에서 NumPy와 C의 API에

PyObject *xw_array = PyArray_FROM_OTF(xw_obj, NPY_DOUBLE, NPY_IN_ARRAY); 
PyObject *x1_array = PyArray_FROM_OTF(x1_obj, NPY_DOUBLE, NPY_IN_ARRAY); 

나는 이들 두 배열에 PyArray_SearchSorted를 사용하려면 - 내가 현재하고있는 중이 야 :

PyObject *ix_array = PyArray_SearchSorted(xw_array, x1_array); 

그러나 이것은 다음과 같은 오류에 이르게 :

propagate_pure.c:123:138: error: too few arguments to function call, expected 4, have 2 
PyObject *ix_array = (*(PyObject * (*)(PyArrayObject *, PyObject *, NPY_SEARCHSIDE, PyObject *)) PyArray_API[131])(xw_array, x1_array); 
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     ^

올바른 방법은 무엇입니까 PyArray_SearchSorted을 사용 하시겠습니까? 4 가지 주장은 무엇입니까? documentation에는 2 가지만 언급되어 있습니다.

답변

1

PyArray_SearchSorted의 전체 선언은 here입니다 :

NPY_NO_EXPORT PyObject * 
PyArray_SearchSorted(PyArrayObject *op1, PyObject *op2, 
        NPY_SEARCHSIDE side, PyObject *perm) 

당신은 sideperm 인수를 제공해야합니다. 기본값은 NPY_SEARCHLEFTNULL입니다. 따라서 다음과 같이 작동해야합니다.