[Numpy-discussion] ANN: numarray-0.2

Todd Miller jmiller at stsci.edu
Wed Feb 27 07:09:03 EST 2002

 Numarray 0.2
Numarray is a Numeric replacement which features c-code generated from
python template scripts, the capacity to operate directly on arrays in
files, and improved type promotion semantics.

Numarray-0.2 incorporates bug fixes and one very significant change to
the user interface, namely in how shape, real, imag and flat
attributes are handled. Also, when numarray objects compared to None
will (arr == None) no longer produce an execption and generate a false
value (rather than a Boolean array).

The next version will incorporate safety checks to prevent possible
crashing of Python if a user misuses or otherwise changes private
variables in numarray. There will also be a new memory object type
to fix a problem discovered with buffer objects (which are currently
used to used to allocate memory). We expect to have this version ready
in 3 weeks.

Numarray is hosted by Source Forge in the same project which hosts Numeric:


The web page for Numarray information is at:



numarray-0.2 requires Python 2.0 or greater.


Numarray was written by Perry Greenfield, Rick White, Todd Miller,
JC Hsu, and Phil Hodge at the Space Telescope Science Institute.
Numarray is made available under a BSD-style License.  See LICENSE.txt
in the source distribution for details.


1. Added support for python-2.2 properties, specifically:

.shape, getshape(), setshape()
.flat, getflat()
.real, getreal(), setreal()
.imag, getimag(), setimag()
.imaginary, getimaginary(), setimaginary()   # aliases for imag

numarray-0.2 is not 100% compatible with numarray-0.11.  To port
numarray-0.11 code to numarray-0.2:

a. Instances of array.reshape(x) must be changed to array.setshape(x)
or array.shape = x.  Users with python versions prior to 2.2 must use

b. Instances of array.real() must be replaced with array.real or
array.getreal().  Users with python versions prior to 2.2 must use

c. Instances of array.imag() must be replaced with array.imag or
array.getimag().  Users with python versions prior to 2.2 must use

2. Fixed bugs in some of the numarray functions related to:

a. Making copies of the input arrays when required to do so.

b. Supporting nested sequences of python numbers in lieu of arrays.

affected functions: reshape, transpose, resize, diagonal, trace,
sort, argsort, ravel, ...

3. Fixed a bug in Complex arrays related to handling of type
Complex64.  This bug manifested as incorrect results for many
operations with Complex64 arrays.  "ones" in particular, returned
obviously incorrect results for type=Complex64.

4. Fixed a bug in type conversion in "where" with
    y = where (equal (x, 0.), 1., x)
on single precision array 'x' resulting in a double precision 'y'.
This fix also affects "choose".

5. Added getrank() method and associated property "rank" for python2.2
and on.

6. Fixed a bug in nonzero where the "input screening" code was
truncating small floating point values to 0.

7. Fixed a bug in all unary/binary ufuncs where output buffer offset
was hard-coded to 0 for "fast" mode.  This caused the following failure:

 >>> a=arange(10)
 >>> a[5:8] += 3
 >>> a
array([3, 4, 5, ... ])

8. Fixed bug / added support for array([], type=ZZZ).

9. Added pi to the numarray namespace by importing it from math.

10. Added arrayrange alias for arange.

11. Improved numarray (in)equality testing by adding handling for None
and re-implementing __nonzero__ as the bitwise-or of the element-wise
comparison of the array with 0.

12. Fixed bug in iscontiguous() which assumed that _bytestride ==
_itemsize for contiguous arrays.  This is not true when slicing occurs,
but perhaps should be.

13. Added typecodes which are compatible with NumPy typecodes:
    "b":UInt8, "c":Int8
  Modified NumericType.__cmp__ to support comparisons against aliases.
  Modified NumericType.__repr__ to return the type name.

14. Modified the doctest for recarray so that it works correctly on win32.

Todd Miller 			jmiller at stsci.edu
STSCI / SSG			(410) 338 4576

More information about the NumPy-Discussion mailing list