[SciPy-user] Need very simple example showing how to return numpy array from C/C++ function

Nathan Bell wnbell@gmail....
Thu Dec 27 18:16:04 CST 2007

On Dec 27, 2007 3:20 PM, Jeremy Conlin <jeremit0@gmail.com> wrote:
> I have a class member function that looks like this:
> std::vector<double> discretize(...);
> I would like to return a numpy array instead of a std::vector<double>.  I
> could (of course) rewrite my function to return a pointer to the first
> element of an array if needed.  I am currently using SWIG for wrapping my
> code for Python.
> I have searched far and wide for a simple example of how I should do this.
> Everything I find is *far* too complicated for someone doing this for the
> first time.  Does someone have a simple example they would like to share?  I
> have the "Guide to Numpy"; it has lots of information about the different
> functions, it doesn't have any examples.

I use STL vectors for ouput in scipy.sparse.  See line 517 of:

For a STL vector<double> named myvec this should work:

int length = myvec.size();
PyObject *obj = PyArray_FromDims(1, &length, PyArray_DOUBLE);

If you know the size of the output in advance, then you might follow
Matthieu's suggestion since a copy is not required.

Nathan Bell wnbell@gmail.com

More information about the SciPy-user mailing list