首页 > 解决方案 > 使用 ctypes 在 C 中调整 numpy 数组的大小

问题描述

我正在ndarray使用 ctypes 将 numpy 传递给 C 函数:

lib = np.ctypeslib.load_library('library', 'path/to/library.so')
lib.function.argtypes = [ numpy.ctypeslib.ndpointer(ndim=1, dtype=numpy.float64, flags='C,A,W') ]
lib.function.restype = None

arr = numpy.zeros((10), dtype=numpy.float64)
lib.function(arr)

使用以下 C 函数:

void function(double *arr)
{
    arr = (double *) realloc(arr, 20 * sizeof(double));
}

但是,数组保持原来的大小。有没有一种简单的方法可以让 numpy 数组在使用时改变大小numpy.ctypeslib.ndpointer

标签: pythonnumpyctypes

解决方案


推荐阅读