我打算在C代码中对numpy数组进行一些计算。有人可以指向一些关于如何从numpy.matrix对象中提取double * C数组的文档吗?所以我可以有这样的C代码:
#include <Python.h>
#include <numpy_arrayobject.h>
static PyObject* foo(PyObject* self, PyObject *args)
{
some_numpy_array_t *x;
if (!PyArg_ParseTuple(args, "O", &x)
return NULL;
double* data = x->some_function_to_get_the_raw_data();
...
}
我正在寻找some_numpy_array_t的类型以及some_function_to_get_the_raw_data()应该在实际代码中的函数。谢谢!
答案 0 :(得分:1)
基于:
需要PyArrayObject和PyArray_DATA()。后者是宏返回void *,所以
double* data = (double*) PyArray_DATA(x);
是正确的行。
注意还需要调用import_array()。