[Numpy-discussion] Time for beta1 of NumPy 1.0

Jon Wright wright at esrf.fr
Fri Jun 30 13:04:06 EDT 2006


Travis Oliphant wrote:

>I hope he doesn't mean the rumors about an array object in Python 
>itself.  Let me be the first to assure everyone that rumors of a 
>"capable" array object in Python have been greatly exaggerated.  I would 
>be thrilled if we could just get the "infra-structure" into Python so 
>that different extension modules could at least agree on an array 
>interface.   That is a far cry from fulfilling the needs of any current 
>Num user, however.
>  
>
Having {pointer + dimensions + strides + type} in the python core would 
be an incredible step forward - this is far more important than changing 
my python code to do functionally the same thing with numpy instead of 
Numeric. If the new array object supports most of the interface of the 
current "array" module then it is already very capable for many tasks. 
It would be great if it also works with Jython (etc).

Bruce Southley wrote:

>1) Identify those "[s]econdary dependency" projects as Louis states
>(BioPython also comes to mind) and get them to convert.
>
As author of a (fairly obscure) secondary dependency package it is not 
clear that this is right time to convert. I very much admire the 
matplotlib approach of using Numerix and see this as a better solution 
than switching (or indeed re-writing in java/c++ etc). However, looking 
into the matplotlib SVN I see:

_image.cpp      2420      4 weeks      cmoad      applied Andrew Straw's 
numpy patch
numerix/_sp_imports.py      2478      2 weeks      teoliphant      Make 
recent changes backward compatible with numpy 0.9.8
numerix/linearalgebra/__init__.py      2474      2 weeks      teoliphant 
     Fix import error for new numpy

While I didn't look at either the code or the diff the comments clearly 
read as: "DON'T SWITCH YET". Get the basearray into the python core and 
for sure I will be using that, whatever it is called. I was tempted to 
switch to numarray in the past because of the nd_image, but I don't see 
that in numpy just yet?

Seeing this on the mailing list:

>So far the vote is 8 for float, 1 for int.
>
... is yet another hint that I can remain with Numeric as a library, at 
least until numpy has a frozen interface/behaviour.

I am very supportive of the work going on but have some technical 
concerns about switching. To pick some examples, it appears that 
numpy.lib.function_base.median makes a copy, sorts and picks the middle 
element. Some reading at http://ndevilla.free.fr/median/median/index.html
or even (eek!) numerical recipes indicates this is not good news. Not to 
single one routine out, I was also saddened to find both Numeric and 
numpy use double precision lapack routines for single precision 
arguments. A diff of numpy's linalg.py with Numeric's LinearAlgebra.py 
goes a long way to explaining why there is resistance to change from 
Numeric to numpy. The boilerplate changes and you only get "norm" (which 
I am suspicious about - vector 2 norms are in blas, some matrix 2 norms 
are in lapack/*lange.f and computing all singular values when you only 
want the biggest or smallest one is a surprising algorithmic choice). I 
realise it might sound like harsh criticism - but I don't see what numpy 
adds for number crunching over and above Numeric. Clearly there *is* a 
lot more in terms of python integration, but I really don't want to do 
number crunching with python itself ;-)

For numpy to really be better than Numeric I would like to find 
algorithm selections according to the array dimensions and type. Getting 
the basearray type into the python core is the key - then it makes sense 
to get the best of breed algorithms working as you can rely on the 
basearray being around for many years to come.

Please please please get basearray into the python core! How can we help 
with that?


Jon





More information about the NumPy-Discussion mailing list