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
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