[Numpy-discussion] Numeric3

Michiel Jan Laurens de Hoon mdehoon at ims.u-tokyo.ac.jp
Thu Feb 3 20:16:07 EST 2005

Travis Oliphant wrote:
> John Hunter wrote:
>> I too would be *very disappointed* to see LinearAlgebra, RandomArray
>> and FFT leave Numeric.  matplotlib requires all three.  Numeric is
>> lightweight and easy to install, and although the scipy install is
>> significantly easier than it was in yesteryear, it still has higher
>> barrier to entry.  I am much happier requiring only Numeric than
>> Numeric and scipy.
> This is all a matter of semantics and packaging.
Well it is mainly a matter of being able to install what you need, and 
not having to spend time figuring out how to install what you don't 
need. Let me give you an example from my own field (computational 
biology). I am one of the maintainers of Biopython, which uses 
LinearAlgebra and RandomArray. Many of our users are not very familiar 
with Python. Even installing Numerical Python sometimes causes problems, 
and I'm sure we have lost users in the past because of that. SciPy, in 
my experience, doesn't build out of the box. If Biopython required 
SciPy, many users will run into installation problems, most of them will 
give up and return to using Microsoft Excel for their numerical 
analysis, medical research will come to a standstill, and we'll all die.

But seriously, I think that there are advantages to Numerical Python and 
to SciPy, and they both have a reason to exist. Numerical Python has the 
advantage that it is easy to install and contains most (if not all) of 
the numerical routines users will need. SciPy, on the other hand, is 
harder to install (e.g. because it doesn't use ANSI-C only), but 
therefore can also offer pieces of software that are not available in 
Numerical Python.

Many users, however, will never need the additional capabilities that 
are in SciPy. Moving LinearAlgebra, RandomArray, and FFT to SciPy will 
make their life more difficult. I don't see an advantage for SciPy users 
either, because they need to install Numerical Python anyway.

So I would suggest the following demarcation line between Numerical 
Python and SciPy:

Stuff that is needed by lots of users (linear algebra, FFT, random 
numbers, special functions) and is available in ANSI-C (so its 
installation is straightforward and won't cause problems to users who 
don't need it) should go into Numerical Python.

Stuff that is needed by fewer users or is not available in ANSI-C should 
go into SciPy. SciPy, with its binary installers, can provide a real 
benefit to users who need extension modules written in Fortran/C++/whatnot.

To address the issue you raised about duplicated efforts in numpy and 
SciPy: What does SciPy do better in terms of linear algebra, FFT, or 
random numbers, than numpy? If so, is it possible to move the relevant 
SciPy code pieces to numpy (without affecting numpy's ease of installation)?


More information about the NumPy-Discussion mailing list