summaryrefslogtreecommitdiff
path: root/doc/release/2.0.0-notes.rst
blob: 0ffa96f2120478bc3e72a9b11253e992c03d1dec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
=========================
NumPy 2.0.0 Release Notes
=========================


Plans
=====

This release has the following aims:

* Python 3 compatibility
* :pep:`3118` compatibility


Highlights
==========


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 reduce 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.
* The fit class function of the Polynomial class now uses None as the default
  domain for the fit. The default Polynomial domain can be specified by using
  [] as the domain value.

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 reduce 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.
* The fit class function of the Chebyshev class now uses None as the default
  domain for the fit. The default Chebyshev domain can be specified by using
  [] as the domain value.