首页 > 解决方案 > 如何使用 CPython 数组在 cdef 函数内为多维 memoryview 动态分配内存

问题描述

我正在尝试使用 cython 处理和输出(numpy)数组。我已经阅读了这篇文章,它解释了如何使用 cpython 数组来做到这一点。例如:

from cpython.array import array, clone
def int[:] foo1d(int m):
    cdef int[:] mv;
    cdef array template = array('i', [])
    mv = clone(template, m, True)
    return mv

但是我想知道如何为多维类型的内存视图执行此操作。例如,我可以用 numpy 做到这一点:

import numpy as np
cimport numpy as np

cdef int[:,:] foo2d(int m, int n):
    cdef int[:,:] mv;
    mv = np.zeros((m, n), dtype=int)
    return mv

但我找不到如何用 cpython.array 做到这一点。我感谢任何帮助和建议。

标签: pythoncythonmemoryview

解决方案


推荐阅读