[SciPy-user] Clarification sought on various Python numerical packages

Robert Kern robert.kern at gmail.com
Wed May 3 11:53:23 EDT 2006


Matthew Webber wrote:
> I would appreciate it if someone could clarify for me the various Python
> "numerical" packages.

I'm afraid that both David and Bill are also confused on some points.

In the beginning was Numeric. Unfortunately, Numeric acquired several nicknames:
Numerical Python, Numerical, NumPy. For example, the SourceForge project name
for it is numpy, the old CVS module is Numerical, Konrad Hinsen named his
package Scientific Python in reference to Numerical Python.

Development on Numeric slowed down several years ago, and people wanted to
extend it in ways that the then-current codebase did not really allow.
Furthermore, there was a desire to get Numeric or something like it into the
standard library, and Guido was quite clear that the code was not maintainable
in its state then. The numarray project began as a complete rewrite of Numeric
that, among other things, pushed some of the code up into the Python level. This
gave numarray a lot of flexibility and allowed it to experiment with a number of
alternatives that have proven their usefulness. It also was quite fast for very
large arrays because the people working on it were at the Space Telescope
Science Institute and were intending to use it for astronomical image processing.

Unfortunately, as fast as it was for large arrays, it was too slow for small
arrays. In particular, SciPy codes ran quite a bit slower. Also, the C API for
creating ufuncs was not as convenient as that of Numeric. Consequently, it was
going to be very difficult to convert the SciPy codebase to use numarray. This
split fractured the community quite a bit: some people wrote code only for
numarray, seeing it as the next Numeric; some people wrote code for Numeric,
because they needed SciPy.

Travis Oliphant wanted to reunify the community around a single array package.
He refactored Numeric's code to make it more maintainable (although probably not
enough to get the whole thing into the standard library, more on that later) and
flexible enough to implement the novel features of numarray. He named this
project "scipy core" and intended to use the package name "scipy". The rest of
SciPy would simply add more modules to core SciPy package. Eventually, it became
clear that people were mistakenly thinking that Numeric had been subsumed into
SciPy and that they would have to install the whole of SciPy just to get an
array object.

We had a long discussion about what to name the package, and the winner was numerix!

Unfortunately, that name is trademarked by a company that does DSP. In order to
avoid trademark infringement by ourselves and by our users, we needed another
name. We picked numpy.

Moral: Don't let your software project acquire nicknames!

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco




More information about the SciPy-User mailing list