| 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. | |