2
建议为类型化的内存视图分配内存的方法是什么?
有关类型化内存视图的Cython文档列出了分配给类型化内存视图的三种方式: 从原始的C指针, 从一个 np.ndarray和 从cython.view.array。 假设我没有从外部将数据传递到cython函数中,而是想分配内存并将其返回为np.ndarray,那么我选择了哪些选项?还假设该缓冲区的大小不是编译时常量,即我无法在堆栈上分配,但需要malloc为选项1。 因此,这三个选项看起来像这样: from libc.stdlib cimport malloc, free cimport numpy as np from cython cimport view np.import_array() def memview_malloc(int N): cdef int * m = <int *>malloc(N * sizeof(int)) cdef int[::1] b = <int[:N]>m free(<void *>m) def memview_ndarray(int N): cdef int[::1] b = np.empty(N, dtype=np.int32) def …