Milestone 1.2.0
This minor release comes almost four months after the 1.1.0 release. The major features of this release are a new testing framework and huge amount of documentation work. It also includes a some minor API breakage scheduled in the 1.1 release.
Please note that NumPy 1.2.0 requires Python 2.4 or greater.
Major documentation improvements
This summer saw the first NumPy Documentation Marathon, during which many thousands of lines of documentation were written. In addition, a web framework was developed which allows the community to contribute docstrings in a wiki-like fashion, without needing access to the source repository. The new reference guide, which is based on these contributions, was built using the popular Sphinx tool. While the documentation coverage is now better than ever, there is still a lot of work to be done, and we encourage interested parties to register and contribute further.
New testing framework
The NumPy test framework now relies on the nose testing framework version 0.10 or later. Much of the work on the testing framework was carried out as part of a Google Summer of Code project.
Buffered iterator
Roberto de Almeida's buffered iterator has been added as "numpy.lib.Arrayterator". The buffered iterator reads large arrays in small blocks, allowing operations over very large data-sets while maintaining a small memory footprint. Any object that supports multidimensional slices can be used, including variables from NetCDF, pynetcdf and ndarrays.
Median
This release is the second step in adding 'axis' support for numpy.median(); the first step was included in the 1.1 release. This is not just useful on its own, but it is also makes median() consistent with mean(), min(), max(), var(), std(), sum(), prod(), etc.
The new call signature is:
def median(a, axis=None, out=None, overwrite_input=False)
This returns the median of the array elements taken over a flattened version of the array by default, otherwise over the specified axis.
Histogram
The semantics of histogram has been modified to fix long-standing issues with outliers handling. The main changes concern
- the definition of the bin edges, now including the rightmost edge, and
- the handling of upper outliers, now ignored rather than tallied in the rightmost bin.
The previous behavior is still accessible using new=False, but is scheduled to be deprecated in the next release (1.3).
Random number generator improvements
Several improvements and bug-fixes to random number generator distributions. The negative binomial generator now accepts floating point arguments. The Zipf generator now handles an integer wraparound problem. Fixed a scaling factor for the F distribution. The logarithmic series now rejects out of bounds results due to integer conversions.
Set operations
unique1d will now return reverse indices, i.e., the indices required to build the input array from the output set.
Optimizations
Numpy import times have been heavily optimized, and should now be at least twice faster on most platforms.
Bug-fixes
- #117
- bdist_rpm and config_fc don't work together
- #164
- Patch to build numpy-0.9.8 on Windows X64 (AMD64) with MSVS2005
- #195
- Non-critical Valgrind issues
- #228
- Backward compatibility plan
- #390
- repr() on recarray failure
- #392
- histogram reverse indicies
- #539
- config parameters are not passed on to build
- #576
- numpy installation doesn't detect gfortran or g95
- #605
- Incorrect behaviour of numpy.histogram
- #666
- Sort memcpy reminder
- #698
- segfault float96 + None
- #701
- The returned keyword in average looks useless.
- #707
- numpy.array failes if the input is a list of matrixes
- #730
- long doubles display differently than the other float types
- #750
- Swig interface - Bug in FORTRAN-ordering support
- #771
- Valgrind warning when running test for ticket #658
- #785
- Error in linalg.norm()
- #795
- How to document classes, methods, attributes?
- #796
- Fake ticket to test Trac's ability to send notification emails
- #798
- `piecewise` exposes raw memory
- #801
- load_library cannot load libraries with extensions in the name:
- #805
- PyArray_FromDims should use intp instead of int type for the dims on 64-bit machines
- #806
- Conversion of masked arrays from one dtype to another fails because of fill_value
- #807
- massked_array_value /= scalar_value -> mask and data must be same size
- #810
- Verbose argument not effective for ndarrays in assert_equal
- #812
- numpy.sum, numpy.std, numpy.var fail on masked arrays
- #813
- _zerofill has a path with no return value
- #814
- self test failuers on Sun Solaris 10 System, version 1.2.0.dev5255
- #815
- self test failuers on RHE 4/32-bit, version 1.2.0.dev5255
- #816
- Constructing numpy.object_ causes a crash
- #818
- floats cast to integer overwrites two entries in a numpy integer matrix
- #820
- numpy.ma.array ignores mask when asembling masked array inputs
- #822
- Segfault deallocating long chains of views
- #825
- SIGBUS in UNICODE_getatter on Sparc Linux
- #828
- npy file format test failures on open solaris (x86, 32 bits)
- #829
- SEGFAULT when attempting to use arrays as indices into multi-dimensional arrays
- #831
- numpy.float64*poly1d = array
- #832
- numpy.ndarray relational operators do not (seem to) respect array priority
- #833
- No array function equivalent to matrix ** [PATCH]
- #834
- numpy.sort sometimes doesn't handle strings right
- #835
- bus error from numpy self tests on Solaris
- #837
- Infinite loop in fromfile & fromstring
- #838
- Improving numpy import time
- #839
- DataSource tests require network access
- #843
- Reference count error in PyArray_CanCoerceScalar
- #845
- deepcopy not identical to source
- #846
- Topical documentation as `numpy.doc`
- #847
- Warnings on printing pointers during compilation
- #848
- Another ref count leak using PyArray_DescrFromType
- #849
- Possible reference to deallocated object
- #850
- Memory leak in `_strings_richcompare`
- #854
- Non-standard branch cuts
- #863
- Regression in #658 ? (valgrind warning)
- #865
- Recent C99 changes (complex functions) break tests on windows
- #869
- defer 'import tempfile'
- #874
- quicker 'import numpy' time
- #877
- Segfault when using recarray 'O' entries
- #878
- np.fix does not work properly for negative integers
- #881
- Segmentation fault with numpy.object0
- #882
- Segmentation fault in array.choose with empty list as argument
- #888
- Incorrect value returned by numpy.array.max
- #889
- Incorrect value returned by numpy.array.max
- #893
- Numpy incompatible with python -OO
- #895
- Import error for matplotlib
- #899
- NumPy test suite fails to run with Python 2.6b3 and nose 0.10.3
- #900
- Compiler warnings
- #903
- Compilation fails on Cygwin
- #905
- numpy.loadtxt usecols argument no longer accepts numpy arrays
- #906
- Deepcopy does not copy _mask attribute of a masked array object
