|
NumPy 1.6.0 Release Notes |
|
************************* |
|
|
|
This release includes several new features as well as numerous bug fixes and |
|
improved documentation. It is backward compatible with the 1.5.0 release, and |
|
supports Python 2.4 - 2.7 and 3.1 - 3.2. |
|
|
|
|
|
Highlights |
|
========== |
|
|
|
* Re-introduction of datetime dtype support to deal with dates in arrays. |
|
|
|
* A new 16-bit floating point type. |
|
|
|
* A new iterator, which improves performance of many functions. |
|
|
|
|
|
New features |
|
============ |
|
|
|
New 16-bit floating point type |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
This release adds support for the IEEE 754-2008 binary16 format, available as |
|
the data type ``numpy.half``. Within Python, the type behaves similarly to |
|
`float` or `double`, and C extensions can add support for it with the exposed |
|
half-float API. |
|
|
|
|
|
New iterator |
|
~~~~~~~~~~~~ |
|
|
|
A new iterator has been added, replacing the functionality of the |
|
existing iterator and multi-iterator with a single object and API. |
|
This iterator works well with general memory layouts different from |
|
C or Fortran contiguous, and handles both standard NumPy and |
|
customized broadcasting. The buffering, automatic data type |
|
conversion, and optional output parameters, offered by |
|
ufuncs but difficult to replicate elsewhere, are now exposed by this |
|
iterator. |
|
|
|
|
|
Legendre, Laguerre, Hermite, HermiteE polynomials in ``numpy.polynomial`` |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
Extend the number of polynomials available in the polynomial package. In |
|
addition, a new ``window`` attribute has been added to the classes in |
|
order to specify the range the ``domain`` maps to. This is mostly useful |
|
for the Laguerre, Hermite, and HermiteE polynomials whose natural domains |
|
are infinite and provides a more intuitive way to get the correct mapping |
|
of values without playing unnatural tricks with the domain. |
|
|
|
|
|
Fortran assumed shape array and size function support in ``numpy.f2py`` |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
F2py now supports wrapping Fortran 90 routines that use assumed shape |
|
arrays. Before such routines could be called from Python but the |
|
corresponding Fortran routines received assumed shape arrays as zero |
|
length arrays which caused unpredicted results. Thanks to Lorenz |
|
Hüdepohl for pointing out the correct way to interface routines with |
|
assumed shape arrays. |
|
|
|
In addition, f2py supports now automatic wrapping of Fortran routines |
|
that use two argument ``size`` function in dimension specifications. |
|
|
|
|
|
Other new functions |
|
~~~~~~~~~~~~~~~~~~~ |
|
|
|
``numpy.ravel_multi_index`` : Converts a multi-index tuple into |
|
an array of flat indices, applying boundary modes to the indices. |
|
|
|
``numpy.einsum`` : Evaluate the Einstein summation convention. Using the |
|
Einstein summation convention, many common multi-dimensional array operations |
|
can be represented in a simple fashion. This function provides a way compute |
|
such summations. |
|
|
|
``numpy.count_nonzero`` : Counts the number of non-zero elements in an array. |
|
|
|
``numpy.result_type`` and ``numpy.min_scalar_type`` : These functions expose |
|
the underlying type promotion used by the ufuncs and other operations to |
|
determine the types of outputs. These improve upon the ``numpy.common_type`` |
|
and ``numpy.mintypecode`` which provide similar functionality but do |
|
not match the ufunc implementation. |
|
|
|
|
|
Changes |
|
======= |
|
|
|
``default error handling`` |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
The default error handling has been change from ``print`` to ``warn`` for |
|
all except for ``underflow``, which remains as ``ignore``. |
|
|
|
|
|
``numpy.distutils`` |
|
~~~~~~~~~~~~~~~~~~~ |
|
|
|
Several new compilers are supported for building Numpy: the Portland Group |
|
Fortran compiler on OS X, the PathScale compiler suite and the 64-bit Intel C |
|
compiler on Linux. |
|
|
|
|
|
``numpy.testing`` |
|
~~~~~~~~~~~~~~~~~ |
|
|
|
The testing framework gained ``numpy.testing.assert_allclose``, which provides |
|
a more convenient way to compare floating point arrays than |
|
`assert_almost_equal`, `assert_approx_equal` and `assert_array_almost_equal`. |
|
|
|
|
|
``C API`` |
|
~~~~~~~~~ |
|
|
|
In addition to the APIs for the new iterator and half data type, a number |
|
of other additions have been made to the C API. The type promotion |
|
mechanism used by ufuncs is exposed via ``PyArray_PromoteTypes``, |
|
``PyArray_ResultType``, and ``PyArray_MinScalarType``. A new enumeration |
|
``NPY_CASTING`` has been added which controls what types of casts are |
|
permitted. This is used by the new functions ``PyArray_CanCastArrayTo`` |
|
and ``PyArray_CanCastTypeTo``. A more flexible way to handle |
|
conversion of arbitrary python objects into arrays is exposed by |
|
``PyArray_GetArrayParamsFromObject``. |
|
|
|
|
|
Deprecated features |
|
=================== |
|
|
|
The "normed" keyword in ``numpy.histogram`` is deprecated. Its functionality |
|
will be replaced by the new "density" keyword. |
|
|
|
|
|
Removed features |
|
================ |
|
|
|
``numpy.fft`` |
|
~~~~~~~~~~~~~ |
|
|
|
The functions `refft`, `refft2`, `refftn`, `irefft`, `irefft2`, `irefftn`, |
|
which were aliases for the same functions without the 'e' in the name, were |
|
removed. |
|
|
|
|
|
``numpy.memmap`` |
|
~~~~~~~~~~~~~~~~ |
|
|
|
The `sync()` and `close()` methods of memmap were removed. Use `flush()` and |
|
"del memmap" instead. |
|
|
|
|
|
``numpy.lib`` |
|
~~~~~~~~~~~~~ |
|
|
|
The deprecated functions ``numpy.unique1d``, ``numpy.setmember1d``, |
|
``numpy.intersect1d_nu`` and ``numpy.lib.ufunclike.log2`` were removed. |
|
|
|
|
|
``numpy.ma`` |
|
~~~~~~~~~~~~ |
|
|
|
Several deprecated items were removed from the ``numpy.ma`` module:: |
|
|
|
* ``numpy.ma.MaskedArray`` "raw_data" method |
|
* ``numpy.ma.MaskedArray`` constructor "flag" keyword |
|
* ``numpy.ma.make_mask`` "flag" keyword |
|
* ``numpy.ma.allclose`` "fill_value" keyword |
|
|
|
|
|
``numpy.distutils`` |
|
~~~~~~~~~~~~~~~~~~~ |
|
|
|
The ``numpy.get_numpy_include`` function was removed, use ``numpy.get_include`` |
|
instead. |
|
|