summaryrefslogtreecommitdiff
path: root/doc/release/1.11.0-notes.rst
blob: 7c2ed2133296cef135eaa1f158619fb90875f93a (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
101
102
103
104
105
106
107
108
109
110
111
112
113
NumPy 1.11.0 Release Notes
**************************

This release supports Python 2.6 - 2.7 and 3.2 - 3.5.


Highlights
==========


Dropped Support
===============

* Bento build support and related files have been removed.
* Single file build support and related files have been removed.


Future Changes
==============

* Relaxed stride checking will become the default.


Compatibility notes
===================

DeprecationWarning to error
~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Indexing with floats raises IndexError,
  e.g., a[0, 0.0].
* Indexing with non-integer array_like raises IndexError,
  e.g., a['1', '2']
* Indexing with multiple ellipsis raises IndexError,
  e.g., a[..., ...].
* Indexing with boolean where integer expected raises IndexError,
  e.g., a[False:True:True].
* Non-integers used as index values raise TypeError,
  e.g., in reshape, take, and specifying reduce axis.

FutureWarning to changed behavior
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* In ``np.lib.split`` an empty array in the result always had dimension
  ``(0,)`` no matter the dimensions of the array being split. This
  has been changed so that the dimensions will be preserved. A
  ``FutureWarning`` for this change has been in place since Numpy 1.9 but,
  due to a bug, sometimes no warning was raised and the dimensions were
  already preserved.

C API
~~~~~

Removed the ``check_return`` and ``inner_loop_selector`` members of
the ``PyUFuncObject`` struct (replacing them with ``reserved`` slots
to preserve struct layout). These were never used for anything, so
it's unlikely that any third-party code is using them either, but we
mention it here for completeness.


New Features
============

* `np.histogram` now provides plugin estimators for automatically estimating the optimal
number of bins. Passing one of ['auto', 'fd', 'scott', 'rice', 'sturges']
as the argument to 'bins' results in the corresponding estimator being used.

* A benchmark suite using `Airspeed Velocity <http://spacetelescope.github.io/asv/>`__
has been added, converting the previous vbench-based one. You can run the suite locally
via ``python runtests.py --bench``. For more details, see ``benchmarks/README.rst``.

* A new function ``np.shares_memory`` that can check exactly whether two
arrays have memory overlap is added. ``np.may_share_memory`` also now
has an option to spend more effort to reduce false positives.

* ``SkipTest`` and ``KnownFailureException`` exception classes are exposed in the
``numpy.testing`` namespace. Raise them in a test function to mark the test to
be skipped or mark it as a known failure, respectively.

Improvements
============

*np.gradient* now supports an ``axis`` argument
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``axis`` parameter was added to *np.gradient* for consistency.
It allows to specify over which axes the gradient is calculated.

*np.lexsort* now supports arrays with object data-type
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The function now internally calls the generic ``npy_amergesort``
when the type does not implement a merge-sort kind of ``argsort``
method.

Changes
=======


Deprecations
============

Views of arrays in Fortran order
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The f_contiguous flag was used to signal that views as a dtypes that
changed the element size would change the first index. This was always a
bit problematical for arrays that were both f_contiguous and c_contiguous
because c_contiguous took precendence. Relaxed stride checking results in
more such dual contiguous arrays and breaks some existing code as a result.
Note that this also affects changing the dtype by assigning to the dtype
attribute of an array. The aim of this deprecation is to restrict views to
c_contiguous arrays at some future time. A work around that is backward
compatible is to use `a.T.view(...).T` instead. A parameter will also be
added to the view method to explicitly ask for Fortran order views, but
that will not be backward compatible.