Передача массивов Numpy в код C, заключенный в Cython

У меня есть небольшой фрагмент существующего кода C, который я хочу обернуть с помощью Cython . Я хочу иметь возможность настроить несколько массивов numpy, а затем передать эти массивы в качестве аргументов коду C, функции которого принимают стандартные массивы c (1d и 2d). Я' Я немного застрял в том, чтобы понять, как написать правильный .pyx-код для правильной обработки вещей.

Есть несколько функций, но типичная функция в файле funcs.h выглядит примерно так:

double InnerProduct(double *A, double **coords1, double **coords2, const int len)

Я тогда есть файл .pyx с соответствующей строкой:

cdef extern from "funcs.h":
    double InnerProduct(double *A, double **coords1, double **coords2, int len)

, где я избавился от const , потому что cython его не поддерживает. Там, где я застрял, должен выглядеть код оболочки для передачи массива MxN numpy аргументам ** coords1 и ** coords2.

Я изо всех сил пытался найти правильную документацию или руководства по этому типу проблемы. Мы будем очень благодарны за любые предложения.

16
задан Saullo G. P. Castro 12 May 2013 в 21:49
поделиться