[ANN] NumPy 1.0 release

T

Travis E. Oliphant

We are very pleased to announce the release of NumPy 1.0 available for
download at http://www.numpy.org

This release is the culmination of over 18 months of effort to allow
unification of the Numeric and Numarray communities. NumPy provides the
features of both packages as well as comparable speeds in the domains
where both were considered fast --- often beating both packages on
certain problems. If there is an area where we can speed up NumPy then
we are interested in hearing about the solution.

NumPy is essentially a re-write of Numeric to include the features of
Numarray plus more. NumPy is a C-based extension module to Python that
provides an N-dimensional array object (ndarray), a collection of fast
math functions, basic linear algebra, array-producing random number
generators, and basic Fourier transform capabilities.

Also included with NumPy are:

1) A data-type object. The data-type of all NumPy arrays are defined by
a data-type object that describes how the block of memory that makes up
an element of the array is to be interpreted. Supported are all basic
C-types, structures containing C-types, arrays of C-types, and
structures containing structures of C-types. Data-types can also be in
big or little-endian order. NumPy arrays can therefore be constructed
from any regularly-sized chunk of data. A chunk of data can also be a
pointer to a Python object and therefore Object arrays can be
constructed (including record arrays with object members).

2) Array scalars: there is a Python scalar object (inheriting from the
standard object where possible) defined for every basic data-type that
an array can have.

2) A matrix object so that '*' is re-defined as matrix-multiplication
and '**' as matrix-power.

3) A character array object that can replace Numarray's similarly-named
object. It is basically an array of strings (or unicode) with methods
matching the string and unicode methods.

4) A record array that builds on the advanced data-type support of the
basic array object to allow field access using attribute look-up as well
as to provide more ways to build-up a record-array.

5) A memory-map object that makes it easier to use memory-mapped areas
as the memory for an array object.

6) A basic container class that uses the ndarray as a member. This
often facilitates multiple-inheritance.

7) A large collection of basic functions on the array.

8) Compatibility layer for Numeric including code to help in the
conversion to NumPy and full C-API support.

9) Compatibility layer for NumPy including code to help in the
conversion to NumPy and full C-API support.


NumPy can work with Numeric and Numarray installed and while the three
array objects are different to Python, they can all share each other's
data through the use of the array interface.

As the developers for Numeric we can definitively say development of
Numeric has ceased as has effective support. You may still find an
answer to a question or two and Numeric will be available for download
as long as Sourceforge is around so and code written to Numeric will
still work, but there will not be "official" releases of Numeric for
future versions of Python (including Python2.5).

The development of NumPy has been supported by the people at STScI who
created Numarray and support it. They have started to port their
applications to NumPy and have indicated that support for Numarray will
be phased out over the next year.

You are strongly encouraged to move to NumPy. The whole point of NumPy
is to unite the Numeric/Numarray development and user communities. We
have done our part in releasing NumPy 1.0 and doing our best to make the
transistion as easy as possible. Please support us by adopting NumPy.
If you have trouble with that, please let us know why so that we can
address the problems you identify. Even better, help us in fixing the
problems.

New users should download NumPy first unless they need an older package
to work with third party code. Third-party package writers should
migrate to use NumPy. Though it is not difficult, there are some things
that have to be altered. Several people are available to help with that
process, just ask (we will do it free for open source code and as
work-for-hire for commercial code).


This release would not have been possible without the work of many
people. Thanks go to (if we have missed your contribution please let
us know):

* Travis Oliphant for the majority of the code adaptation (blame him
for code problems :) )
* Jim Hugunin, Paul Dubois, Konrad Hinsen, David Ascher, Jim Fulton
and many others for Numeric on which the code is based.
* Perry Greenfield, J Todd Miller, Rick White, Paul Barrett for
Numarray which gave much inspiration and showed the way forward.
* Paul Dubois for Masked Arrays
* Pearu Peterson for f2py and numpy.distutils and help with code
organization
* Robert Kern for mtrand, bug fixes, help with distutils, code
organization, and much more.
* David Cooke for many code improvements including the auto-generated
C-API and optimizations.
* Alexander Belopolsky (Sasha) for Masked array bug-fixes and tests,
rank-0 array improvements, scalar math help and other code additions
* Francesc Altet for unicode and nested record tests and much help
with rooting out nested record array bugs.
* Tim Hochberg for getting the build working on MSVC, optimization
improvements, and code review
* Charles Harris for the sorting code originally written for Numarray
and for improvements to polyfit, many bug fixes, and documentation strings.
* Robert Cimrman for numpy.distutils help and the set-operations for
arrays
* David Huard for histogram code improvements including 2-d and d-d code
* Eric Jones for sundry subroutines borrowed from scipy_base
* Fernando Perez for code snippets, ideas, bugfixes, and testing.
* Ed Schofield for matrix.py patches, bugfixes, testing, and docstrings.
* John Hunter for code snippets (from matplotlib)
* Chris Hanley for help with records.py, testing, and bug fixes.
* Travis Vaught, Joe Cooper, Jeff Strunk for administration of
numpy.org web site and SVN
* Andrew Straw for bug-reports and help with www.scipy.org
* Albert Strasheim for bug-reports, unit-testing and Valgrind runs
* Stefan van der Walt for bug-reports, regression-testing, and
bug-fixes.
* Eric Firing for bugfixes.
* Arnd Baecker for 64-bit testing
* A.M. Archibald for code that decreases the number of times reshape
makes a copy.


More information is available at http://numpy.scipy.org and
http://www.scipy.org. Bug-reports and feature requests should be
submitted as tickets to the Trac pages at
http://projects.scipy.org/scipy/numpy/
As an anti-SPAM measure, you must create an account in order to post
tickets.


Enjoy the new release,

Sincerely,
The NumPy Developers



*Disclaimer*: The main author, Travis Oliphant, has written a 350+ page
book entitled "Guide to NumPy" that documents the new system fairly
thoroughly. The first two chapters of this book are available on-line
for free, but the remainder must be purchased (until 2010 or a certain
number of total sales has been reached). See http://www.trelgol.com for
more details. There is plenty of free documentation available now for
NumPy, however. Go to http://www.scipy.org for more details.
 
G

George Sakkis

Travis said:
We are very pleased to announce the release of NumPy 1.0 available for
download at http://www.numpy.org

Congratulations for this great package and the tremendous effort that
was put on it! Hopefully with this release, the 'array wars' are over;
we may not be able to agree on the One And Only gui or web framework,
but at least we can settle on an array interface.

Unfortunately, the frustrating installation with ATLAS and LAPACK has
curbed my initial enthusiasm; this has probably more to do with Redhat
and its derivative distros than NumPy per se. After some hours of
downloading, configuring and compiling LAPACK, ATLAS (whose 'make
testing' failed because of GNU Fortran's problems with complex
variables on Redhat, as I found out the hard way) and NumPy, I managed
to build them all, fire up the interpreter, import numpy and be greeted
by:

"/usr/local/lib/python2.4/site-packages/numpy/linalg/lapack_lite.so:
undefined symbol: s_cat".

After some more wasted time, I found out that I had to explicitly link
with "-lg2c". Rebuild, reinstall, reimport and the problem was gone...
giving its place to:

ImportError:
/usr/local/lib/python2.4/site-packages/numpy/linalg/lapack_lite.so:
undefined symbol: zheevd_

Googling for "undefined symbol: zheevd_" returned no hits, at which
point I gave up for now; hopefully someone will have a suggestion on
what to do next (other than dumping RH's mess for Ubuntu, which I'd
gladly do if it was up to me).

By the way, it would be great if numpy's mailing list was mirrored to a
google group; sourceforge and gmane are just horrible to use.

Best regards,
George
 
R

Robert Kern

George said:
ImportError:
/usr/local/lib/python2.4/site-packages/numpy/linalg/lapack_lite.so:
undefined symbol: zheevd_

Googling for "undefined symbol: zheevd_" returned no hits, at which
point I gave up for now; hopefully someone will have a suggestion on
what to do next (other than dumping RH's mess for Ubuntu, which I'd
gladly do if it was up to me).

zheevd is a LAPACK routine. Check for that symbol in the LAPACK library that you
are linking. If it's not there, then your LAPACK library is broken. ATLAS
provides some optimized LAPACK routines, and some distributions of ATLAS provide
LAPACK libraries with *only* those routines:

http://scipy.org/FAQ#head-0f5cda66c4d28a8c65206cc2b4213e18f1c22547
By the way, it would be great if numpy's mailing list was mirrored to a
google group; sourceforge and gmane are just horrible to use.

Sorry, I don't think that Google Groups does mirroring like GMane does. While we
will be migrating the numpy-discussion list away from Sourceforge, it will be to
the scipy.org server, not Google Groups.

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

George Sakkis

Robert said:
zheevd is a LAPACK routine. Check for that symbol in the LAPACK library that you
are linking. If it's not there, then your LAPACK library is broken. ATLAS
provides some optimized LAPACK routines, and some distributions of ATLAS provide
LAPACK libraries with *only* those routines:

http://scipy.org/FAQ#head-0f5cda66c4d28a8c65206cc2b4213e18f1c22547

Thanks Robert, mystery solved; the source was there but I had changed
the Makefile to not build for complex variables after reading about
RH's problem, and then forgot to put it back. At last, I can now import
numpy! I don't have any use for complex variables, so I hope the broken
tests don't imply anything for the reliability of the library on my
system.

Thanks again,
George
 
S

sturlamolden

Travis said:
We are very pleased to announce the release of NumPy 1.0 available for
download at http://www.numpy.org

Congratulations to you and the other NumPy developers for completing
this major undertaking. I would also like to express my sincere
gratitude for making this making this software available to all of us.
Thank you.

Sturla Molden
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,060
Latest member
BuyKetozenseACV

Latest Threads

Top