如何将python数组转换为cython数组?
发布于 2021-01-29 16:53:33
我有一个在常规Python中创建的浮点值数组,我想将其传递给面向底层C函数的cython函数。C函数要求将数组作为浮动指针传递,如下所示:
void setOverlays(const float * verts);
cython包装器如下所示:
def set_overlays(verts):
setOverlays(verts)
如何转换为cython阵列?我认为这可能有效:
cdef float * cVerts = [v for v in verts]
但不幸的是,生成的值是一个Python对象,在这种情况下,自动转换无效。
ctypes中的等效表达式(有效)是:
cVerts = (c_float * len(verts))()
for i in range(len(verts)):
cVerts[i] = verts[i]
setOverlays(cast(byteref(cVerts), POINTER(c_float)))
我正在尝试实现同一件事,但是在赛顿
提前致谢!
关注者
0
被浏览
187
1 个回答