我在C库中分配了一大块double,我想基于该数据创建一个numpy 1D数组;理想情况下,我希望有两个版本,它只包含c_ptr只读 - 让C层保留数据的所有权,以及复制数据的版本。所以简化的代码就像这样:
double * init_and_alloc( size_t size ) {
double * ptr = malloc( size * sizeof * ptr );
// initialize ptr
return ptr;
}
size = 1000
c_ptr = ctypes_func_ptr_init_and_alloc( size )
numpy_array = numpy.xxxx( c_ptr , size , dtype.float64) <--- ?????
我标记为xxxx的功能是否存在?
最好的问候
Joakim Hove
答案 0 :(得分:2)
是的,numpy.ctypeslib.as_array
获取给定的dtype as_array(ptr, shape).view(dtype)
。
这应该有效,至少在理论上是这样(现在没时间进行测试)。