Numarray 1.4.0 review
DownloadNumarray provides array manipulation and computational capabilities similar to those found in IDL, Matlab, or Octave


Numarray provides array manipulation and computational capabilities similar to those found in IDL, Matlab, or Octave. Using numarray, it is possible to write many efficient numerical data processing applications directly in Python without using any C, C++ or Fortran code (as well as doing such analysis interactively within Python or PyRAF).
For algorithms that are not well suited for efficient computation using array facilities it is possible to write C functions (and eventually Fortran) that can read and write numarray arrays that can be called from Python.
Numarray is a reimplementation of an older Python array module called Numeric. In general its interface is very similar. It is mostly backward compatible and will be becoming more so in future releases. Numarray offers more capability than Numeric but is still behind Numeric in some areas:
numarray is efficient for large arrays (>20,000 elements) but is slower than Numeric for small arrays by a factor of 2 to 4.
numarray has a smaller selection of addon packages. numarray currently has ports of Numeric packages for linear algebra, random numbers, and fourier transforms. numarray has native packages for convolution and multidimensional image processing. Most Numeric extensions (C or Fortran) can be ported to numarray with minimal effort.
numarray is sufficiently developed to be useful for a number of applications, and is being used in the Hubble Space Telescope data processing pipeline (for the Advanced Camera for Surveys) and to develop the Cosmic Origins Spectrograph pipeline. PyFITS is also based on it. Most of STScI's future astronomical data processing applications will be built using its capabilities.
Numarray is being developed as an Open Source project on SourceForge from which the current development source code may be obtained. The Science Software Branch at STScI is leading this development effort.
STScI has settled on the matplotlib plotting package as the recommended 2d data visualization tool for numarray data. While its support for numarray and Tkinter is now present, we are holding off a bit before recommending its use for all users. If you don't mind possible problems with installation or some holes in functionality it can be used now. We are in the process of improving the installation documentation for use with numarray.
Although matplotlib has its heritage in trying to emulate matlab plotting capabilities from Python, it does not require matlab. Currently the documentation is geared towards those more familiar with matlab, though many users will have no problem generating simple plots with it. It is still undergoing considerable development (by the original author, John Hunter, and with contributions by STScI and others) and we hope to fill the holes in functionality in the coming months. Nevertheless, it is capable of doing many things now.
What's New in This Release:
ENHANCEMENTS
Speed improvement for numarray operators. The Python level hook mapping numarray operators onto universal functions has been moved down to C.
Speed improvement for stringarray comparisons, any(), all(). String correlation is ~10x faster.
Better operation with py2exe to help it automatically detect the core numarray extensions to include in an installer.
scipy newcore compatible lower case type names (e.g. int32 not Int32)
scipy newcore 'dtype' keyword and .dtypechar attribute.
BUGS FIXED / CLOSED
1323355 Apps fail with import_libnumarray
1315212 Infinite loop converting some scalar strings into a list
1298916 rank0 tostring() broken
1297948 records.array fails to create empty fields
1286291 import sys missing from array_persist.py
1286168 Generic sequences in ``strings.array()``
1236392 Outdated web link in announcements
1235219 LinearAlgebraError not imported in linear_algebra
Numarray 1.4.0 keywords