[Numpy-discussion] Speeding up numarray -- questions on its design

Travis Oliphant oliphant at ee.byu.edu
Fri Jan 14 22:37:32 CST 2005


Hello all,

I don't comment much on numarray because I haven't used it that much, as 
Numeric fits my needs quite well.  It does bother me that there are two 
communities coexisting and that work seems to get repeated several 
times, so recently I have looked at numarray to see how far it is from 
being acceptable as a real replacement for Numeric.

I have some comments based on perusing it's source.   I don't want to 
seem overly critical, so please take my comments with the understanding 
that I appreciate the extensive work that has gone into Numarray.  I do 
think that Numarray has made some great strides.  I would really like to 
see a unification of Numeric and Numarray.

1) Are there plans to move the nd array entirely into C?  
   -- I would like to see the nd array become purely a c-type. I would 
be willing to help here.  I can see that part of the work has been done.

2) Why is the ND array C-structure so large?   Why are the dimensions 
and strides array static? Why can't the extra stuff that the fancy 
arrays need be another structure and the numarray C structure just 
extended with a pointer to the extra stuff?

3) There seem to be too many files to define the array.  The mixture of 
Python and C makes trying to understand the source very difficult.  I 
thought one of the reasons for the re-write was to simplify the source 
code.  

4) Object arrays must be supported.  This was a bad oversight and an 
important feature of Numeric arrays.

5) The ufunc code interface needs to continue to be improved.  I do see 
that some effort into understanding the old ufunc interface has taken 
place which is a good sign.

Again, thanks to the work that has been done.  I'm really interested to 
see if some of these modifications can be done as in my mind it will 
help the process of unifying the two camps.

-Travis Oliphant





More information about the Numpy-discussion mailing list