[Numpy-discussion] Best way to expose std::vector to be used with numpy

Sebastian Berg sebastian at sipsolutions.net
Mon Oct 13 14:54:28 EDT 2014


On Mo, 2014-10-13 at 13:35 +0200, Daniele Nicolodi wrote:
> Hello,
> 
> I have a C++ application that collects float, int or complex data in a
> possibly quite large std::vector. The application has some SWIG
> generated python wrappers that expose this vector to python. However,
> the standard way in which SWIG exposes the data is to create a touple
> and pass this to python, where it is very often converted to a numpy
> array for processing. Of course this is not efficient.
> 
> I would like therefore to generate a smarter python interface. In python
> 3 I would without doubt go for implementing the buffer protocol, which
> enables seamless interfacing with numpy. However, I need to support also
> python 2 and there the buffer protocol is not as nice.

Isn't the new buffer protocol in python 2.6 or 2.7 already? There is at
least a memoryview object in python 2, which maybe could be used to the
same effect?

- Sebastian

> 
> What is the best thing to do to expose the data buffer to python 2,
> without introducing a dependency on numpy in the application?
> 
> Bonus points if the proposed solution comes with a pointer on how to
> implement in in SWIG (which I don't know much and feel a bit too magic
> for my taste).
> 
> Thank you!
> 
> Cheers,
> Daniele
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20141013/c84c2811/attachment.sig>


More information about the NumPy-Discussion mailing list