小编Ale*_*lex的帖子

将Cython中的numpy数组传递给需要动态分配数组的C函数

我有一些C代码具有以下声明:

int myfunc(int m, int n, const double **a, double **b, double *c);
Run Code Online (Sandbox Code Playgroud)

所以a是一个恒定的二维数组,b是一个二维数组,并且c是一维数组,都是动态分配的. b并且c在传递之前不需要任何具体的东西myfunc,应该被理解为输出信息.出于这个问题的目的,我不允许更改声明myfunc.

问题1:如何将给定的numpy数组a_np转换为a具有此C函数所需格式的数组,以便我可以在Cython中调用此C函数a

问题2:是的声明bc下方正确的,或者他们需要在其他格式的C函数将其理解为一个二维和一维数组(分别)?

我的尝试:

myfile.pxd

cdef extern from "myfile.h":
    int myfunc(int p, int q, const double **a, double **b, double *c)
Run Code Online (Sandbox Code Playgroud)

mytest.pyx

cimport cython
cimport myfile
import numpy as np
cimport numpy as np

p = 3
q = 4 …
Run Code Online (Sandbox Code Playgroud)

c python arrays numpy cython

7
推荐指数
2
解决办法
2938
查看次数

标签 统计

arrays ×1

c ×1

cython ×1

numpy ×1

python ×1