将 numpy 数组转换为 C++ 本机向量

Converting a numpy array into a c++ native vector

我目前有一个 python C 扩展,它采用 PyObject 列表,我可以使用 'PySequence_Fast'.

进行解析

是否有等效的命令允许我解析一维 numpy 数组?

干杯, 杰克

函数 PyArray_FROM_OTF 转换为一个 numpy 数组(除非参数已经是一个 numpy 数组,只是 returns 它具有递增的引用计数)。参见 http://docs.scipy.org/doc/numpy/user/c-info.how-to-extend.html#converting-an-arbitrary-sequence-object。例如

PyObject* definitely_numpy_array = PyArray_FROM_OTF(might_be_numpy_array,
                 NPY_DOUBLE, // you need to specify a type
                 0 // there's assorted flags you can add to describe the exact format you want which are described in the documentation
                 )

这适用于任意数量的维度,因此如果您严格要求一维,则必须添加一个检查。它还需要包含 numpy headers ("numpy/arrayobject.h")