NumPy 1.5.0 Release Notes#
Highlights#
Python 3 compatibility#
This is the first NumPy release which is compatible with Python 3. Support forPython 3 and Python 2 is done from a single code base. Extensive notes onchanges can be found athttps://web.archive.org/web/20100814160313/http://projects.scipy.org/numpy/browser/trunk/doc/Py3K.txt.
Note that the Numpy testing framework relies on nose, which does not have aPython 3 compatible release yet. A working Python 3 branch of nose can be foundathttps://web.archive.org/web/20100817112505/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 thisversion of Numpy. On Python versions >= 2.6 Numpy arrays expose the bufferinterface, and array(), asarray() and other functions accept new-style buffersas input.
New features#
Warning on casting complex to real#
Numpy now emits anumpy.ComplexWarning when a complex number is castinto 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 theintended behavior in all cases, hence the warning. This warning can beturned off in the standard way:
>>>importwarnings>>>warnings.simplefilter("ignore",np.ComplexWarning)
Dot method for ndarrays#
Ndarrays now have the dot product also as a method, which allows writingchains 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 determinantof a matrix. Because the determinant may involve the product of manysmall/large values, the result is often more accurate than that obtainedby simple multiplication.
new header#
The new header file ndarraytypes.h contains the symbols fromndarrayobject.h that do not depend on the PY_ARRAY_UNIQUE_SYMBOL andNO_IMPORT/_ARRAY macros. Broadly, these symbols are types, typedefs,and enumerations; the array function calls are left inndarrayobject.h. This allows users to include array-related types andenumerations without needing to concern themselves with the macroexpansions and their side- effects.
Changes#
polynomial.polynomial#
The polyint and polyder functions now check that the specified numberintegrations or derivations is a non-negative integer. The number 0 isa 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 liketruncate 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 defaultPolynomial 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 numberintegrations or derivations is a non-negative integer. The number 0 isa 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 liketruncate 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 defaultChebyshev 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 functionhas 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 (theusual definition for cross-correlation) is now the default.