我有一个用 C 编写的主程序,并且想使用已经用 Python 编写的库,所以我将一些 C-Python API 嵌入到我的 C 程序中。
我已经成功创建了一个代表 numpy 数组的 PyObject,其中包含 C 中的浮点数据,并将其作为参数发送到 Python 脚本中定义的函数,C 程序将通过以下命令调用该函数:
pValue = PyObject_CallObject(pFunc, pArgs);,
其中pFunc
是要在 Python 脚本中调用的函数的名称,pArgs
是包含要传递给函数的参数的 PyObject,并且pValue
是 PyObject 类型,我相信它将包含返回的结果。
Python 脚本中的函数处理发送的数组,然后将包含浮点数据的二维 numpy 数组返回(nrow, ncol)
给我的主 C 程序。
如何检索返回数组中的数据,并将它们复制到 C 数组中?
https://docs.python.org/3/extending/embedding.html#pure-embedding中有一个示例显示如何使用检索长值
int d = PyLong_AsLong(pValue));
但是,一个 numpy 数组是怎么回事?是否可以使用 PyArray_AsCArray() 之类的东西?