ANN: numarray-1.0 released
02 Jul 2004 17:05:48 -0400
Release Notes for numarray-1.0
Numarray is an array processing package designed to efficiently
manipulate large multi-dimensional arrays. Numarray is modeled after
Numeric and features c-code generated from python template scripts,
the capacity to operate directly on arrays in files, and improved type
1. User added ufuncs
There's a setup.py file in numarray-1.0/Examples/ufunc which
demonstrates how a numarray user can define their own universal
functions of one or two parameters. Ever wanted to write your own
bessel() function for use on arrays? Now you can. Your ufunc can use
exactly the same machinery as add().
2. Ports of Numeric functions
A bunch of Numeric functions were ported to numarray in the new
libnumeric module. To get these import from numarray.numeric. Most
notable among these are put, putmask, take, argmin, and argmax. Also
added were sort, argsort, concatenate, repeat and resize. These are
independent ports/implementations in C done for the purpose of best
Numeric compatibility and small array performance. The numarray
versions, which handle additional cases, still exist and are the
default in numarray proper.
3. Faster matrix multiply
The setup for numarray's matrix multiply was moved into C-code. This
makes it faster for small matrices.
4. The numarray "header PEP"
A PEP has been started for the inclusion of numarray (and possibly
Numeric) C headers into the Python core. The PEP will demonstrate how
to provide optional support for arrays (the end-user may or may not
have numarray installed and the extension will still work). It may
also (eventually) demonstrate how to build extensions which support
both numarray and Numeric. Thus, the PEP is seeking to make it
possible to distribute extensions which will still compile when
numarray (or either) is not present in a user's Python installation,
which will work when numarry (or either) is not installed, and which
will improve performance when either is installed. The PEP is now in
numarray-1.0/Doc/header_pep.txt in docutils format. We want feedback
and consensus before we submit to python-dev so please consider
reading it and commenting.
For the PEP, the C-API has been partitioned into two parts: a
relatively simple Numeric compatible part and the numarray native
part. This broke source and binary compatibility with numarray-0.9.
See CAUTIONS below for more information.
5. Changes to the manual
There are now brief sections on numarray.mlab and numarray.objects in
the manual. The discussion of the C-API has been updated.
1. The numarray-1.0 C-API is neither completely source level nor
binary compatible with numarray-0.9. First, this means that some 3rd
party extensions will no longer compile without errors. Second, this
means that binary packages built against numarray-0.9 will fail,
probably disastrously, using numarray-1.0. Don't install numarray-1.0
until you are ready to recompile or replace your extensions with
numarray-1.0 binaries because 0.9 binaries will not work.
In order to support the header PEP, the numarray C-API was partitioned
into two parts: Numeric compatible and numarry extensions. You can use
the Numeric compatible API (the PyArray_* functions) by including
arrayobject.h and calling import_array() in your module init function.
You can use the extended API (the NA_* functions) by including
libnumarray.h and calling import_libnumarray() in your init function.
Because of the partitioning, all numarray extensions must be
recompiled to work with 1.0. Extensions using *both* APIs must
include both files in order to compile, and must do both imports in
order to run. Both APIs share a common PyArrayObject struct.
2. numarray extension writers should note that the documented use of
PyArray_INCREF and PyArray_XDECREF (in numarray) was found to be
incompatible with Numeric and these functions have therefore been
removed from the supported API and will now result in errors.
3. The numarray.objects.ObjectArray parameter order was changed.
4. The undocumented API function PyArray_DescrFromTypeObj was removed
from the Numeric compatible API because it is not provided by Numeric.
III. BUGS FIXED / CLOSED
for more details.
979834 convolve2d parameter order issues
979775 ObjectArray parameter order
979712 No exception for invalid axis
979702 too many slices fails silently
979123 A[n:n] = x no longer works
979028 matrixmultiply precision
976951 Unpickled numarray types unsable?
977472 CharArray concatenate
970356 bug in accumulate contiguity status
969162 object array bug/ambiguity
963921 bitwise_not over Bool type fails
963706 _reduce_out: problem with otype
942804 numarray C-API include file
932438 suggest moving mlab up a level
932436 mlab docs missing
857628 numarray allclose returns int
839401 Argmax's behavior has changed for ties
817348 a+=1j # Not converted to complex
957089 PyArray_FromObject dim check broken
923046 numarray.objects incompatibility
897854 Type conflict when embedding on OS X
793421 PyArray_INCREF / PyArray_XDECREF deprecated
735479 Build failure on Cygwin 1.3.22 (very current install).
870660 Numarray: CFLAGS build problem
874198 numarray.random_array.random() broken?
874207 not-so random numbers in numarray.random_array
829662 Downcast from Float64 to UInt8 anomaly
867073 numarray diagonal bug?
806705 a tale of two rank-0's
863155 Zero size numarray breaks for loop
922157 argmax returns integer in some cases
934514 suggest nelements -> size
953294 choose bug
955314 strings.num2char bug?
955336 searchsorted has strange behaviour
955409 MaskedArray problems
953567 Add read-write requirement to NA_InputArray
952705 records striding for > 1D arrays
944690 many numarray array methods not documented
915015 numarray/Numeric incompatabilities
949358 UsesOpPriority unexpected behavior
944678 incorrect help for "size" func/method
888430 NA_NewArray() creates array with wrong endianess
922798 The document Announce.txt is out of date
947080 numarray.image.median bugs
922796 Manual has some dated MA info
931384 What does True mean in a mask?
931379 numeric.ma called MA in manual
933842 Bool arrays don't allow bool assignment
935588 problem parsing argument "nbyte" in callStrideConvCFunc()
936162 problem parsing "nbytes" argument in copyToString()
937680 Error in Lib/numerictypes.py ?
936539 array([cmplx_array, int_array]) fails
936541 a[...,1] += 0 crashes interpreter.
940826 Ufunct operator don't work
935882 take for character arrays?
933783 numarray, _ufuncmodule.c: problem setting buffersize
930014 fromstring typecode param still broken
929841 searchsorted type coercion
924841 numarray.objects rank-0 results
925253 numarray.objects __str__ and __repr__
913782 Minor error in chapter 12: NUM_ or not?
889591 wrong header file for C extensions
925073 API manual comments
924854 take() errors
925754 arange() with large argument crashes interpreter
926246 ufunc reduction crash
902153 can't compile under RH9/gcc 3.2.2
916876 searchsorted/histogram broken in versions 0.8 and 0.9
920470 numarray arange() problem
915736 numarray-0.9: Doc/CHANGES not up to date
Numarray-1.0 windows executable installers, source code, and manual is
Numarray is hosted by Source Forge in the same project which hosts
The web page for Numarray information is at:
Trackers for Numarray Bugs, Feature Requests, Support, and Patches are
at the Source Forge project for NumPy at:
numarray-1.0 requires Python 2.2.2 or greater.
Numarray was written by Perry Greenfield, Rick White, Todd Miller, JC
Hsu, Paul Barrett, Phil Hodge at the Space Telescope Science
Institute. We'd like to acknowledge the assitance of Francesc Alted,
Paul Dubois, Sebastian Haase, Tim Hochberg, Nadav Horesh, Edward
C. Jones, Eric Jones, Jochen K"upper, Travis Oliphant, Pearu Peterson,
Peter Verveer, Colin Williams, and everyone else who has contributed
with comments, bug reports, or patches.
Numarray is made available under a BSD-style License. See
LICENSE.txt in the source distribution for details.
Todd Miller email@example.com