将Numpy数组以指针到指针格式传递给C的2D数组,使用Cython

2024-04-19 09:11:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些C代码,我正在使用Cython将它们合并到Python中。C代码以指针到指针格式处理2D数组,即为3x3数组分配内存如下

float **A = (float **)malloc(3*sizeof(float *));
for (i=0; i<3; i++) A[i] = (float *)malloc(3*sizeof(float));

我从Cython Github wiki上关注这个tutorial。注意,它们线性地存储二维数组。在

我的问题是,更改Cython代码(特别是Numpy数组的处理)的最有效方法是什么,以便它可以用于void c_multiply (float** array, float multiplier, int m, int n)函数(即现在处理指向指针数组的指针)。在

注意,我目前处理它的方法是在C代码中有两个转换函数,它们最初被调用,最后将索引从线性变为指针对指针,反之亦然。但是,理想情况下,我不想更改C代码。在


Tags: 方法函数代码githubfor格式线性数组