C扩展名为整数& numpy数组作为参数

时间:2016-06-15 21:11:16

标签: python numpy python-c-api python-c-extension

我想创建一个python的c扩展,它接受一个整数,两个numpy数组作为参数。怎么做?

谢谢。

这有效:

#include "Python.h"
#include "numpy/arrayobject.h"

static PyObject* test4 (PyObject *self, PyObject *args)
{
    int m;
    if (!PyArg_ParseTuple(args, "i", m))
    {
        return NULL;
    }
}

这也有效:

#include "Python.h"
#include "numpy/arrayobject.h"

static PyObject* test4 (PyObject *self, PyObject *args)
{
    PyArrayObject *a_array
    PyArrayObject *ja_array
    if (!PyArg_ParseTuple(args, "O!O!", 
                            &PyArray_Type, &a_array,
                            &PyArray_Type, &ja_array))
    {
        return NULL;
    }
}

以下不起作用:

#include "Python.h"
#include "numpy/arrayobject.h"

static PyObject* test4 (PyObject *self, PyObject *args)
{
    PyArrayObject *a_array
    PyArrayObject *ja_array
    int m;
    if (!PyArg_ParseTuple(args, "iO!O!", 
                            &m,
                            &PyArray_Type, &a_array,
                            &PyArray_Type, &ja_array))
    {
        return NULL;
    }
}

编译时出现的错误是:

error: expression must have integral type
            &a_array
            ^

我可以将整数作为numpy数组传递给函数......但事情应该更简单。

0 个答案:

没有答案