numpy 2d int数组到使用ctypes的int指针的C数组

时间:2018-11-19 17:28:47

标签: python c arrays numpy ctypes

我在C语言中有一个函数,该函数接受nxm整数矩阵作为n个int指针的数组。每个指针指向大小为m的整数数组的第一个元素,因此它们可以看作是矩阵的行。例如:

void func(int **matrix, int n, int m);

在内存中,该数组类似于此页面上的数组1:http://c-faq.com/aryptr/dynmuldimary.html

我想在Python中使用ctypes使用此C函数。因此,我导入了该文件,并为其提供了以下argtypes:

func.argtypes = [ctypes.POINTER(ctypes.POINTER(ctypes.c_int)), ctypes.c_int, ctypes.c_int]

现在我想给该函数一个numpy 2d数组...

让我们说我有一个二维的numpy int数组:

 a = np.random.rand(2,3) * 100
 a = a.astype("int")

如何将numpy矩阵a转换为正确的格式,反之亦然?

我尝试使用:

a.ctypes.data_as(ctypes.POINTER(ctypes.POINTER(ctypes.c_int)))

但这给了我一个自以为是的...

0 个答案:

没有答案