[Numpy-discussion] best way for C code wrapping

Albert Strasheim fullung@gmail....
Sat Feb 16 13:26:45 CST 2008


Hello,

On Feb 16, 2008 9:14 PM, dmitrey <dmitrey.kroshko@scipy.org> wrote:
> hi all,
> I intend to connect some C code to Python for some my purposes.
> What is the best software for the aim?
> Is it numpy.ctypes or swig or something else?
> IIRC ctypes are present in Python since v2.5, so it's ok to use just
> ctypes, not numpy.ctypes, or some difference is present?

I would definitely recommend ctypes. numpy.ctypes is just some extra
code to make it easier to use NumPy arrays with ctypes. It's not a
standalone thing.

There are some example of what you can do with the ctypes support in NumPy here:

http://www.scipy.org/Cookbook/Ctypes

Look for ndpointer.

> Another one question: if I'll translate a fortran code to C via f2c,
> which % of speed down should I expect (in average, using gfortran and
> gcc)? Afaik it contains operations with sparse matrices.

Depending on what you want to do exactly, you might consider wrapping
the Fortran code using f2py instead of translating it to C. You could
also build the Fortran code as a shared library and wrap it using
ctypes.

Regards,

Albert


More information about the Numpy-discussion mailing list