将Numpy数组传递给用Cython包装的C代码

Jos*_*del 16 arrays numpy cython

我有一小部分现有的C代码,我想用Cython包装.我希望能够设置一些numpy数组,然后将这些数组作为参数传递给C代码,其代码的函数采用标准的c数组(1d和2d).在弄清楚如何编写正确的.pyx代码以正确处理事情方面,我有点陷入困境.

有一些函数,但文件funcs.h中的典型函数类似于:

double InnerProduct(double *A, double **coords1, double **coords2, const int len)
Run Code Online (Sandbox Code Playgroud)

然后我有一个.pyx文件,其中包含相应的行:

cdef extern from "funcs.h":
    double InnerProduct(double *A, double **coords1, double **coords2, int len)
Run Code Online (Sandbox Code Playgroud)

我摆脱了const,因为cython不支持它.我陷入困境的是包装器代码应该看起来像是将MxN numpy数组传递给**coords1和**coords2参数.

我一直在努力为这类问题找到正确的文档或教程.任何建议都将非常感激.

Dav*_*veP 0

应根据此处给出的教程创建 cython 接口代码。

要获取指向 numpy 数组中数据的 C 指针,您应该使用 numpy 数组的 ctypes 属性,如此处所述