[Numpy-discussion] Advice on converting Numarray C extension?

Russell E. Owen rowen@u.washington....
Tue Jun 30 13:31:35 CDT 2009


In article 
<e06186140906291710s34865590p38032012f12d0f60@mail.gmail.com>,
 Charles R Harris <charlesr.harris@gmail.com> wrote:

> On Mon, Jun 29, 2009 at 4:17 PM, Russell E. Owen 
> <rowen@u.washington.edu>wrote:
> 
> > In article
> > <e06186140906291429m3cb339e8ge298f179d811e8a7@mail.gmail.com>,
> >  Charles R Harris <charlesr.harris@gmail.com> wrote:
> >
> > > On Mon, Jun 29, 2009 at 3:03 PM, Russell E. Owen
> > > <rowen@u.washington.edu>wrote:
> > >
> > > > I have an old Numarray C extension (or, rather, a Python package
> > > > containing a C extension) that I would like to convert to numpy
> > > > (in a way that is likely to be supported long-term).
> > >
> > > How big is the extension and what does it do?
> >
> > It basically contains 2 functions:
> > 1: radProfile: given a masked image (2d array), a radius and a desired
> > center: compute a new 1d array whose value at index r is the sum of all
> > unmasked pixels at radius r.
> >
> > 2: radAsymm: given the same inputs as radProfile, return a (scalar)
> > measure of radial asymmetry by computing the variance of unmasked pixels
> > at each radius and combining the results.
> >
> > The original source file is about 1000 lines long, of which 1/3 to 1/2
> > is the basic C code and the rest is Python wrapper.
> 
> It sounds small enough that you should be able to update it to the numpy
> interface. What functions do you need? You should also be able to attach a
> copy (zipped) if it is small enough, which might help us help you.

It is the PyGuide package
<http://www.astro.washington.edu/rowen/PyGuide/files/PyGuide.zip>
a 525k zip file. The extension code is in the src directory.

I would certainly be grateful for any pointers to how the old numarray C 
API functions map to the new numpy ones. I would prefer to use the new 
numpy API if I can figure out what to do.

-- Russell



More information about the Numpy-discussion mailing list