|
NumPy 1.5.0 Release Notes |
|
************************* |
|
|
|
|
|
Highlights |
|
========== |
|
|
|
Python 3 compatibility |
|
~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
This is the first NumPy release which is compatible with Python 3. Support for |
|
Python 3 and Python 2 is done from a single code base. Extensive notes on |
|
changes can be found at |
|
`<http://projects.scipy.org/numpy/browser/trunk/doc/Py3K.txt>`_. |
|
|
|
Note that the Numpy testing framework relies on nose, which does not have a |
|
Python 3 compatible release yet. A working Python 3 branch of nose can be found |
|
at `<http://bitbucket.org/jpellerin/nose3/>`_ however. |
|
|
|
Porting of SciPy to Python 3 is expected to be completed soon. |
|
|
|
:pep:`3118` compatibility |
|
~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
The new buffer protocol described by PEP 3118 is fully supported in this |
|
version of Numpy. On Python versions >= 2.6 Numpy arrays expose the buffer |
|
interface, and array(), asarray() and other functions accept new-style buffers |
|
as input. |
|
|
|
|
|
New features |
|
============ |
|
|
|
Warning on casting complex to real |
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
Numpy now emits a `numpy.ComplexWarning` when a complex number is cast |
|
into a real number. For example: |
|
|
|
>>> x = np.array([1,2,3]) |
|
>>> x[:2] = np.array([1+2j, 1-2j]) |
|
ComplexWarning: Casting complex values to real discards the imaginary part |
|
|
|
The cast indeed discards the imaginary part, and this may not be the |
|
intended behavior in all cases, hence the warning. This warning can be |
|
turned off in the standard way: |
|
|
|
>>> import warnings |
|
>>> warnings.simplefilter("ignore", np.ComplexWarning) |
|
|
|
Dot method for ndarrays |
|
~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
Ndarrays now have the dot product also as a method, which allows writing |
|
chains of matrix products as |
|
|
|
>>> a.dot(b).dot(c) |
|
|
|
instead of the longer alternative |
|
|
|
>>> np.dot(a, np.dot(b, c)) |
|
|
|
linalg.slogdet function |
|
~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
The slogdet function returns the sign and logarithm of the determinant |
|
of a matrix. Because the determinant may involve the product of many |
|
small/large values, the result is often more accurate than that obtained |
|
by simple multiplication. |
|
|
|
new header |
|
~~~~~~~~~~ |
|
|
|
The new header file ndarraytypes.h contains the symbols from |
|
ndarrayobject.h that do not depend on the PY_ARRAY_UNIQUE_SYMBOL and |
|
NO_IMPORT/_ARRAY macros. Broadly, these symbols are types, typedefs, |
|
and enumerations; the array function calls are left in |
|
ndarrayobject.h. This allows users to include array-related types and |
|
enumerations without needing to concern themselves with the macro |
|
expansions and their side- effects. |
|
|
|
|
|
Changes |
|
======= |
|
|
|
polynomial.polynomial |
|
~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
* The polyint and polyder functions now check that the specified number |
|
integrations or derivations is a non-negative integer. The number 0 is |
|
a valid value for both functions. |
|
* A degree method has been added to the Polynomial class. |
|
* A trimdeg method has been added to the Polynomial class. It operates like |
|
truncate except that the argument is the desired degree of the result, |
|
not the number of coefficients. |
|
* Polynomial.fit now uses None as the default domain for the fit. The default |
|
Polynomial domain can be specified by using [] as the domain value. |
|
* Weights can be used in both polyfit and Polynomial.fit |
|
* A linspace method has been added to the Polynomial class to ease plotting. |
|
* The polymulx function was added. |
|
|
|
polynomial.chebyshev |
|
~~~~~~~~~~~~~~~~~~~~ |
|
|
|
* The chebint and chebder functions now check that the specified number |
|
integrations or derivations is a non-negative integer. The number 0 is |
|
a valid value for both functions. |
|
* A degree method has been added to the Chebyshev class. |
|
* A trimdeg method has been added to the Chebyshev class. It operates like |
|
truncate except that the argument is the desired degree of the result, |
|
not the number of coefficients. |
|
* Chebyshev.fit now uses None as the default domain for the fit. The default |
|
Chebyshev domain can be specified by using [] as the domain value. |
|
* Weights can be used in both chebfit and Chebyshev.fit |
|
* A linspace method has been added to the Chebyshev class to ease plotting. |
|
* The chebmulx function was added. |
|
* Added functions for the Chebyshev points of the first and second kind. |
|
|
|
|
|
histogram |
|
~~~~~~~~~ |
|
|
|
After a two years transition period, the old behavior of the histogram function |
|
has been phased out, and the "new" keyword has been removed. |
|
|
|
correlate |
|
~~~~~~~~~ |
|
|
|
The old behavior of correlate was deprecated in 1.4.0, the new behavior (the |
|
usual definition for cross-correlation) is now the default. |
|
|