diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2020-11-27 07:55:36 -0700 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2020-11-27 08:12:20 -0700 |
commit | a37b3a82f1abc3e73287883acfd2b06f88a09f13 (patch) | |
tree | 20cc1acf844546c4fa72aa8dfe11c78a504bc2af /doc | |
parent | 4635c9966f9f9a1bbb775fafc4096fddee8160dd (diff) | |
download | numpy-a37b3a82f1abc3e73287883acfd2b06f88a09f13.tar.gz |
MAINT: Update master after 1.20.x branch.v1.21.0.dev0
- Update setup.py
- Update pavement.py
- Add 1.21.0-note.rst
- Update npyconfig.h
- Clear release/upcoming_changes
Diffstat (limited to 'doc')
57 files changed, 7 insertions, 663 deletions
diff --git a/doc/release/upcoming_changes/13516.performance.rst b/doc/release/upcoming_changes/13516.performance.rst deleted file mode 100644 index 1b32b61d7..000000000 --- a/doc/release/upcoming_changes/13516.performance.rst +++ /dev/null @@ -1,47 +0,0 @@ -Enable multi-platform SIMD compiler optimizations -------------------------------------------------- - -A series of improvements for NumPy infrastructure to pave the way to -**NEP-38**, that can be summarized as follow: - -- **New Build Arguments** : - - - ``--cpu-baseline`` to specify the minimal set of required - optimizations, default value is ``min`` which provides the minimum - CPU features that can safely run on a wide range of users - platforms. - - - ``--cpu-dispatch`` to specify the dispatched set of additional - optimizations, default value is ``max -xop -fma4`` which enables - all CPU features, except for AMD legacy features. - - - ``--disable-optimization`` to explicitly disable the whole new - improvements, It also adds a new **C** compiler #definition - called ``NPY_DISABLE_OPTIMIZATION`` which it can be used as - guard for any SIMD code. - -- **Advanced CPU dispatcher**: A flexible cross-architecture CPU dispatcher built - on the top of Python/Numpy distutils, support all common compilers with a wide range of CPU features. - - The new dispatcher requires a special file extension ``*.dispatch.c`` to mark the dispatch-able - **C** sources. These sources have the ability to be compiled multiple times so that each compilation process - represents certain CPU features and provides different #definitions and flags that affect the code paths. - -- **New auto-generated C header ``core/src/common/_cpu_dispatch.h``** - This header is generated by the distutils module 'ccompiler_opt', and contains all the #definitions - and headers of instruction sets, that had been configured through command arguments '--cpu-baseline' and '--cpu-dispatch'. - -- **New C header ``core/src/common/npy_cpu_dispatch.h``** - - This header contains all utilities that required for the whole CPU dispatching process, - it also can be considered as a bridge linking the new infrastructure work with NumPy CPU runtime detection. - -- **Add new attributes to NumPy umath module(Python level)** - - - ``__cpu_baseline__`` a list contains the minimal set of required optimizations that supported - by the compiler and platform according to the specified values to command argument '--cpu-baseline'. - - - ``__cpu_dispatch__`` a list contains the dispatched set of additional optimizations that supported by the compiler - and platform according to the specified values to command argument '--cpu-dispatch'. - -- **Print the supported CPU features during the run of PytestTester** diff --git a/doc/release/upcoming_changes/14882.deprecation.rst b/doc/release/upcoming_changes/14882.deprecation.rst deleted file mode 100644 index db3b39d4c..000000000 --- a/doc/release/upcoming_changes/14882.deprecation.rst +++ /dev/null @@ -1,30 +0,0 @@ -Using the aliases of builtin types like ``np.int`` is deprecated ----------------------------------------------------------------- - -For a long time, ``np.int`` has been an alias of the builtin ``int``. This is -repeatedly a cause of confusion for newcomers, and is also simply not useful. - -These aliases have been deprecated. The table below shows the full list of -deprecated aliases, along with their exact meaning. Replacing uses of items in -the first column with the contents of the second column will work identically -and silence the deprecation warning. - -In many cases, it may have been intended to use the types from the third column. -Be aware that use of these types may result in subtle but desirable behavior -changes. - -================== ================================= ================================================================== -Deprecated name Identical to Possibly intended numpy type -================== ================================= ================================================================== -``numpy.bool`` ``bool`` `numpy.bool_` -``numpy.int`` ``int`` `numpy.int_` (default int dtype), `numpy.cint` (C ``int``) -``numpy.float`` ``float`` `numpy.float_`, `numpy.double` (equivalent) -``numpy.complex`` ``complex`` `numpy.complex_`, `numpy.cdouble` (equivalent) -``numpy.object`` ``object`` `numpy.object_` -``numpy.str`` ``str`` `numpy.str_` -``numpy.long`` ``int`` (``long`` on Python 2) `numpy.int_` (C ``long``), `numpy.longlong` (largest integer type) -``numpy.unicode`` ``str`` (``unicode`` on Python 2) `numpy.unicode_` -================== ================================= ================================================================== - -Note that for technical reasons these deprecation warnings will only be emitted -on Python 3.7 and above. diff --git a/doc/release/upcoming_changes/15121.new_function.rst b/doc/release/upcoming_changes/15121.new_function.rst deleted file mode 100644 index 004fec1b0..000000000 --- a/doc/release/upcoming_changes/15121.new_function.rst +++ /dev/null @@ -1,6 +0,0 @@ -The random.Generator class has a new ``permuted`` function. ------------------------------------------------------------ -The new function differs from ``shuffle`` and ``permutation`` in that the -subarrays indexed by an axis are permuted rather than the axis being treated as -a separate 1-D array for every combination of the other indexes. For example, -it is now possible to permute the rows or columns of a 2-D array. diff --git a/doc/release/upcoming_changes/15666.improvement.rst b/doc/release/upcoming_changes/15666.improvement.rst deleted file mode 100644 index c42d70952..000000000 --- a/doc/release/upcoming_changes/15666.improvement.rst +++ /dev/null @@ -1,8 +0,0 @@ -Improved string representation for polynomials (__str__) --------------------------------------------------------- - -The string representation (``__str__``) of all six polynomial types in -`numpy.polynomial` has been updated to give the polynomial as a mathematical -expression instead of an array of coefficients. Two package-wide formats for -the polynomial expressions are available - one using Unicode characters for -superscripts and subscripts, and another using only ASCII characters. diff --git a/doc/release/upcoming_changes/15759.improvement.rst b/doc/release/upcoming_changes/15759.improvement.rst deleted file mode 100644 index 0a1b255f7..000000000 --- a/doc/release/upcoming_changes/15759.improvement.rst +++ /dev/null @@ -1,4 +0,0 @@ -Remove the Accelerate library as a candidate LAPACK library ------------------------------------------------------------ -Apple no longer supports Accelerate. Remove it. - diff --git a/doc/release/upcoming_changes/15852.new_feature.rst b/doc/release/upcoming_changes/15852.new_feature.rst deleted file mode 100644 index 12965e57b..000000000 --- a/doc/release/upcoming_changes/15852.new_feature.rst +++ /dev/null @@ -1,24 +0,0 @@ -``where`` keyword argument for ``numpy.all`` and ``numpy.any`` functions ------------------------------------------------------------------------- -The keyword argument ``where`` is added and allows to only consider specified -elements or subaxes from an array in the Boolean evaluation of ``all`` and -``any``. This new keyword is available to the functions ``all`` and ``any`` -both via ``numpy`` directly or in the methods of ``numpy.ndarray``. - -Any broadcastable Boolean array or a scalar can be set as ``where``. It -defaults to ``True`` to evaluate the functions for all elements in an array if -``where`` is not set by the user. Examples are given in the documentation of -the functions. - - -``where`` keyword argument for ``numpy`` functions ``mean``, ``std``, ``var`` ------------------------------------------------------------------------------ -The keyword argument ``where`` is added and allows to limit the scope in the -caluclation of ``mean``, ``std`` and ``var`` to only a subset of elements. It -is available both via ``numpy`` directly or in the methods of -``numpy.ndarray``. - -Any broadcastable Boolean array or a scalar can be set as ``where``. It -defaults to ``True`` to evaluate the functions for all elements in an array if -``where`` is not set by the user. Examples are given in the documentation of -the functions. diff --git a/doc/release/upcoming_changes/15886.deprecation.rst b/doc/release/upcoming_changes/15886.deprecation.rst deleted file mode 100644 index 050817e66..000000000 --- a/doc/release/upcoming_changes/15886.deprecation.rst +++ /dev/null @@ -1,7 +0,0 @@ -Passing ``shape=None`` to functions with a non-optional shape argument is deprecated ------------------------------------------------------------------------------------- -Previously, this was an alias for passing ``shape=()``. -This deprecation is emitted by `PyArray_IntpConverter` in the C API. If your -API is intended to support passing `None`, then you should check for `None` -prior to invoking the converter, so as to be able to distinguish `None` and -``()``. diff --git a/doc/release/upcoming_changes/15900.deprecation.rst b/doc/release/upcoming_changes/15900.deprecation.rst deleted file mode 100644 index 22be711d0..000000000 --- a/doc/release/upcoming_changes/15900.deprecation.rst +++ /dev/null @@ -1,16 +0,0 @@ -Indexing errors will be reported even when index result is empty ----------------------------------------------------------------- -In the future, NumPy will raise an IndexError when an -integer array index contains out of bound values even if a non-indexed -dimension is of length 0. This will now emit a DeprecationWarning. -This can happen when the array is previously empty, or an empty -slice is involved:: - - arr1 = np.zeros((5, 0)) - arr1[[20]] - arr2 = np.zeros((5, 5)) - arr2[[20], :0] - -Previously the non-empty index ``[20]`` was not checked for correctness. -It will now be checked causing a deprecation warning which will be turned -into an error. This also applies to assignments. diff --git a/doc/release/upcoming_changes/15997.improvement.rst b/doc/release/upcoming_changes/15997.improvement.rst deleted file mode 100644 index 9b5feacb8..000000000 --- a/doc/release/upcoming_changes/15997.improvement.rst +++ /dev/null @@ -1,12 +0,0 @@ -Object arrays containing multi-line objects have a more readable ``repr`` -------------------------------------------------------------------------- -If elements of an object array have a ``repr`` containing new lines, then the -wrapped lines will be aligned by column. Notably, this improves the ``repr`` of -nested arrays:: - - >>> np.array([np.eye(2), np.eye(3)], dtype=object) - array([array([[1., 0.], - [0., 1.]]), - array([[1., 0., 0.], - [0., 1., 0.], - [0., 0., 1.]])], dtype=object) diff --git a/doc/release/upcoming_changes/16056.deprecation.rst b/doc/release/upcoming_changes/16056.deprecation.rst deleted file mode 100644 index bd57cd226..000000000 --- a/doc/release/upcoming_changes/16056.deprecation.rst +++ /dev/null @@ -1,13 +0,0 @@ -Inexact matches for mode and searchside are deprecated ------------------------------------------------------- -Inexact and case insensitive matches for mode and searchside were -valid inputs earlier and will give a DeprecationWarning now. -For example, below are some example usages which are now deprecated and will -give a DeprecationWarning:: - - import numpy as np - arr = np.array([[3, 6, 6], [4, 5, 1]]) - # mode: inexact match - np.ravel_multi_index(arr, (7, 6), mode="clap") # should be "clip" - # searchside: inexact match - np.searchsorted(arr[0], 4, side='random') # should be "right" diff --git a/doc/release/upcoming_changes/16134.compatibility.rst b/doc/release/upcoming_changes/16134.compatibility.rst deleted file mode 100644 index 6ef1c8992..000000000 --- a/doc/release/upcoming_changes/16134.compatibility.rst +++ /dev/null @@ -1,8 +0,0 @@ -Same kind casting in concatenate with ``axis=None`` ---------------------------------------------------- -When `~numpy.concatenate` is called with ``axis=None``, -the flattened arrays were cast with ``unsafe``. Any other axis -choice uses "same kind". That different default -has been deprecated and "same kind" casting will be used -instead. The new ``casting`` keyword argument -can be used to retain the old behaviour. diff --git a/doc/release/upcoming_changes/16134.improvement.rst b/doc/release/upcoming_changes/16134.improvement.rst deleted file mode 100644 index 0699f44bd..000000000 --- a/doc/release/upcoming_changes/16134.improvement.rst +++ /dev/null @@ -1,6 +0,0 @@ -Concatenate supports providing an output dtype ----------------------------------------------- -Support was added to `~numpy.concatenate` to provide -an output ``dtype`` and ``casting`` using keyword -arguments. The ``dtype`` argument cannot be provided -in conjunction with the ``out`` one. diff --git a/doc/release/upcoming_changes/16156.deprecation.rst b/doc/release/upcoming_changes/16156.deprecation.rst deleted file mode 100644 index 153cc4428..000000000 --- a/doc/release/upcoming_changes/16156.deprecation.rst +++ /dev/null @@ -1,5 +0,0 @@ -Deprecation of `numpy.dual` ---------------------------- -The module `numpy.dual` is deprecated. Instead of importing functions -from `numpy.dual`, the functions should be imported directly from NumPy -or SciPy. diff --git a/doc/release/upcoming_changes/16161.change.rst b/doc/release/upcoming_changes/16161.change.rst deleted file mode 100644 index 7eafdfda0..000000000 --- a/doc/release/upcoming_changes/16161.change.rst +++ /dev/null @@ -1,44 +0,0 @@ -Changed behavior of ``divmod(1., 0.)`` and related functions ------------------------------------------------------------- -The changes also assure that different compiler versions have the same behavior -for nan or inf usages in these operations. This was previously compiler -dependent, we now force the invalid and divide by zero flags, making the -results the same across compilers. For example, gcc-5, gcc-8, or gcc-9 now -result in the same behavior. The changes are tabulated below: - -.. list-table:: Summary of New Behavior - :widths: auto - :header-rows: 1 - - * - Operator - - Old Warning - - New Warning - - Old Result - - New Result - - Works on MacOS - * - np.divmod(1.0, 0.0) - - Invalid - - Invalid and Dividebyzero - - nan, nan - - inf, nan - - Yes - * - np.fmod(1.0, 0.0) - - Invalid - - Invalid - - nan - - nan - - No? Yes - * - np.floor_divide(1.0, 0.0) - - Invalid - - Dividebyzero - - nan - - inf - - Yes - * - np.remainder(1.0, 0.0) - - Invalid - - Invalid - - nan - - nan - - Yes - - diff --git a/doc/release/upcoming_changes/16200.compatibility.rst b/doc/release/upcoming_changes/16200.compatibility.rst deleted file mode 100644 index 42c423eef..000000000 --- a/doc/release/upcoming_changes/16200.compatibility.rst +++ /dev/null @@ -1,76 +0,0 @@ -NumPy Scalars are cast when assigned to arrays ----------------------------------------------- - -When creating or assigning to arrays, in all relevant cases NumPy -scalars will now be cast identically to NumPy arrays. In particular -this changes the behaviour in some cases which previously raised an -error:: - - np.array([np.float64(np.nan)], dtype=np.int64) - -will succeed and return an undefined result (usually the smallest possible -integer). This also affects assignments:: - - arr[0] = np.float64(np.nan) - -At this time, NumPy retains the behaviour for:: - - np.array(np.float64(np.nan), dtype=np.int64) - -The above changes do not affect Python scalars:: - - np.array([float("NaN")], dtype=np.int64) - -remains unaffected (``np.nan`` is a Python ``float``, not a NumPy one). -Unlike signed integers, unsigned integers do not retain this special case, -since they always behaved more like casting. -The following code stops raising an error:: - - np.array([np.float64(np.nan)], dtype=np.uint64) - -To avoid backward compatibility issues, at this time assignment from -``datetime64`` scalar to strings of too short length remains supported. -This means that ``np.asarray(np.datetime64("2020-10-10"), dtype="S5")`` -succeeds now, when it failed before. In the long term this may be -deprecated or the unsafe cast may be allowed generally to make assignment -of arrays and scalars behave consistently. - - -Array coercion changes when Strings and other types are mixed -------------------------------------------------------------- - -When stringss and other types are mixed, such as:: - - np.array(["string", np.float64(3.)], dtype="S") - -The results will change, which may lead to string dtypes with longer strings -in some cases. In particularly, if ``dtype="S"`` is not provided any numerical -value will lead to a string results long enough to hold all possible numerical -values. (e.g. "S32" for floats). Note that you should always provide -``dtype="S"`` when converting non-strings to strings. - -If ``dtype="S"`` is provided the results will be largely identical to before, -but NumPy scalars (not a Python float like ``1.0``), will still enforce -a uniform string length:: - - np.array([np.float64(3.)], dtype="S") # gives "S32" - np.array([3.0], dtype="S") # gives "S3" - -while previously the first version gave the same result as the second. - - -Array coercion restructure --------------------------- - -Array coercion has been restructured. In general, this should not affect -users. In extremely rare corner cases where array-likes are nested:: - - np.array([array_like1]) - -things will now be more consistent with:: - - np.array([np.array(array_like1)]) - -which could potentially change output subtly for badly defined array-likes. -We are not aware of any such case where the results were not clearly -incorrect previously. diff --git a/doc/release/upcoming_changes/16232.deprecation.rst b/doc/release/upcoming_changes/16232.deprecation.rst deleted file mode 100644 index d1ac7f044..000000000 --- a/doc/release/upcoming_changes/16232.deprecation.rst +++ /dev/null @@ -1,6 +0,0 @@ -``outer`` and ``ufunc.outer`` deprecated for matrix ---------------------------------------------------- -``np.matrix`` use with `~numpy.outer` or generic ufunc outer -calls such as ``numpy.add.outer``. Previously, matrix was -converted to an array here. This will not be done in the future -requiring a manual conversion to arrays. diff --git a/doc/release/upcoming_changes/16350.compatibility.rst b/doc/release/upcoming_changes/16350.compatibility.rst deleted file mode 100644 index 67673a6b1..000000000 --- a/doc/release/upcoming_changes/16350.compatibility.rst +++ /dev/null @@ -1,8 +0,0 @@ -Writing to the result of `numpy.broadcast_arrays` will export readonly buffers ------------------------------------------------------------------------------- - -In NumPy 1.17 `numpy.broadcast_arrays` started warning when the resulting array -was written to. This warning was skipped when the array was used through the -buffer interface (e.g. ``memoryview(arr)``). The same thing will now occur for the -two protocols ``__array_interface__``, and ``__array_struct__`` returning read-only -buffers instead of giving a warning.
\ No newline at end of file diff --git a/doc/release/upcoming_changes/16476.new_feature.rst b/doc/release/upcoming_changes/16476.new_feature.rst deleted file mode 100644 index acfe0bd72..000000000 --- a/doc/release/upcoming_changes/16476.new_feature.rst +++ /dev/null @@ -1,9 +0,0 @@ -``norm=backward``, ``forward`` keyword options for ``numpy.fft`` functions --------------------------------------------------------------------------- -The keyword argument option ``norm=backward`` is added as an alias for ``None`` -and acts as the default option; using it has the direct transforms unscaled -and the inverse transforms scaled by ``1/n``. - -Using the new keyword argument option ``norm=forward`` has the direct -transforms scaled by ``1/n`` and the inverse transforms unscaled (i.e. exactly -opposite to the default option ``norm=backward``). diff --git a/doc/release/upcoming_changes/16515.new_feature.rst b/doc/release/upcoming_changes/16515.new_feature.rst deleted file mode 100644 index 5b3803429..000000000 --- a/doc/release/upcoming_changes/16515.new_feature.rst +++ /dev/null @@ -1,8 +0,0 @@ -NumPy is now typed ------------------- -Type annotations have been added for large parts of NumPy. There is -also a new `numpy.typing` module that contains useful types for -end-users. The currently available types are - -- ``ArrayLike``: for objects that can be coerced to an array -- ``DtypeLike``: for objects that can be coerced to a dtype diff --git a/doc/release/upcoming_changes/16519.improvement.rst b/doc/release/upcoming_changes/16519.improvement.rst deleted file mode 100644 index 50c4305e5..000000000 --- a/doc/release/upcoming_changes/16519.improvement.rst +++ /dev/null @@ -1,4 +0,0 @@ -Thread-safe f2py callback functions ------------------------------------ - -Callback functions in f2py are now threadsafe. diff --git a/doc/release/upcoming_changes/16554.compatibility.rst b/doc/release/upcoming_changes/16554.compatibility.rst deleted file mode 100644 index a9f3f07e0..000000000 --- a/doc/release/upcoming_changes/16554.compatibility.rst +++ /dev/null @@ -1,10 +0,0 @@ -Numeric-style type names have been removed from type dictionaries ------------------------------------------------------------------ - -To stay in sync with the deprecation for ``np.dtype("Complex64")`` -and other numeric-style (capital case) types. These were removed -from ``np.sctypeDict`` and ``np.typeDict``. You should use -the lower case versions instead. Note that ``"Complex64"`` -corresponds to ``"complex128"`` and ``"Complex32"`` corresponds -to ``"complex64"``. The numpy style (new) versions, denote the full -size and not the size of the real/imaginary part. diff --git a/doc/release/upcoming_changes/16554.deprecation.rst b/doc/release/upcoming_changes/16554.deprecation.rst deleted file mode 100644 index 5602d2d53..000000000 --- a/doc/release/upcoming_changes/16554.deprecation.rst +++ /dev/null @@ -1,8 +0,0 @@ -Further Numeric Style types Deprecated --------------------------------------- - -The remaining numeric-style type codes ``Bytes0``, ``Str0``, -``Uint32``, ``Uint64``, and ``Datetime64`` -have been deprecated. The lower-case variants should be used -instead. For bytes and string ``"S"`` and ``"U"`` -are further alternatives. diff --git a/doc/release/upcoming_changes/16554.expired.rst b/doc/release/upcoming_changes/16554.expired.rst deleted file mode 100644 index 9b5718f8a..000000000 --- a/doc/release/upcoming_changes/16554.expired.rst +++ /dev/null @@ -1,5 +0,0 @@ -* The deprecation of numeric style type-codes ``np.dtype("Complex64")`` - (with upper case spelling), is expired. ``"Complex64"`` corresponded to - ``"complex128"`` and ``"Complex32"`` corresponded to ``"complex64"``. -* The deprecation of ``np.sctypeNA`` and ``np.typeNA`` is expired. Both - have been removed from the public API. Use ``np.typeDict`` instead. diff --git a/doc/release/upcoming_changes/16558.new_feature.rst b/doc/release/upcoming_changes/16558.new_feature.rst deleted file mode 100644 index 9bd508e83..000000000 --- a/doc/release/upcoming_changes/16558.new_feature.rst +++ /dev/null @@ -1,9 +0,0 @@ -``numpy.typing`` is accessible at runtime ------------------------------------------ -The types in ``numpy.typing`` can now be imported at runtime. Code -like the following will now work: - -.. code:: python - - from numpy.typing import ArrayLike - x: ArrayLike = [1, 2, 3, 4] diff --git a/doc/release/upcoming_changes/16570.compatibility.rst b/doc/release/upcoming_changes/16570.compatibility.rst deleted file mode 100644 index 5efd1218b..000000000 --- a/doc/release/upcoming_changes/16570.compatibility.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``operator.concat`` function now raises TypeError for array arguments -------------------------------------------------------------------------- -The previous behavior was to fall back to addition and add the two arrays, -which was thought to be unexpected behavior for a concatenation function. diff --git a/doc/release/upcoming_changes/16589.compatibility.rst b/doc/release/upcoming_changes/16589.compatibility.rst deleted file mode 100644 index d65fb43f6..000000000 --- a/doc/release/upcoming_changes/16589.compatibility.rst +++ /dev/null @@ -1,8 +0,0 @@ -``nickname`` attribute removed from ABCPolyBase ------------------------------------------------ - -An abstract property ``nickname`` has been removed from ``ABCPolyBase`` as it -was no longer used in the derived convenience classes. -This may affect users who have derived classes from ``ABCPolyBase`` and -overridden the methods for representation and display, e.g. ``__str__``, -``__repr__``, ``_repr_latex``, etc. diff --git a/doc/release/upcoming_changes/16592.compatibility.rst b/doc/release/upcoming_changes/16592.compatibility.rst deleted file mode 100644 index 289e768fc..000000000 --- a/doc/release/upcoming_changes/16592.compatibility.rst +++ /dev/null @@ -1,13 +0,0 @@ -float->timedelta and uint64->timedelta promotion will raise a TypeError ------------------------------------------------------------------------ -Float and timedelta promotion consistently raises a TypeError. -``np.promote_types("float32", "m8")`` aligns with -``np.promote_types("m8", "float32")`` now and both raise a TypeError. -Previously, ``np.promote_types("float32", "m8")`` returned ``"m8"`` which -was considered a bug. - -Uint64 and timedelta promotion consistently raises a TypeError. -``np.promote_types("uint64", "m8")`` aligns with -``np.promote_types("m8", "uint64")`` now and both raise a TypeError. -Previously, ``np.promote_types("uint64", "m8")`` returned ``"m8"`` which -was considered a bug. diff --git a/doc/release/upcoming_changes/16594.new_feature.rst b/doc/release/upcoming_changes/16594.new_feature.rst deleted file mode 100644 index 5d67bfad7..000000000 --- a/doc/release/upcoming_changes/16594.new_feature.rst +++ /dev/null @@ -1,4 +0,0 @@ -New``__f2py_numpy_version__`` attribute for f2py generated modules. -------------------------------------------------------------------- -Because f2py is released together with NumPy, ``__f2py_numpy_version__`` -provides a way to track the version f2py used to generate the module. diff --git a/doc/release/upcoming_changes/16650.compatibility.rst b/doc/release/upcoming_changes/16650.compatibility.rst deleted file mode 100644 index 653232355..000000000 --- a/doc/release/upcoming_changes/16650.compatibility.rst +++ /dev/null @@ -1,16 +0,0 @@ -`numpy.genfromtxt` now correctly unpacks structured arrays ----------------------------------------------------------- -Previously, `numpy.genfromtxt` failed to unpack if it was called with -``unpack=True`` and a structured datatype was passed to the ``dtype`` argument -(or ``dtype=None`` was passed and a structured datatype was inferred). -For example:: - - >>> data = StringIO("21 58.0\n35 72.0") - >>> np.genfromtxt(data, dtype=None, unpack=True) - array([(21, 58.), (35, 72.)], dtype=[('f0', '<i8'), ('f1', '<f8')]) - -Structured arrays will now correctly unpack into a list of arrays, -one for each column:: - - >>> np.genfromtxt(data, dtype=None, unpack=True) - [array([21, 35]), array([58., 72.])] diff --git a/doc/release/upcoming_changes/16675.improvement.rst b/doc/release/upcoming_changes/16675.improvement.rst deleted file mode 100644 index bc70d7e0f..000000000 --- a/doc/release/upcoming_changes/16675.improvement.rst +++ /dev/null @@ -1,4 +0,0 @@ -`numpy.core.records.fromfile` now supports file-like objects ------------------------------------------------------------- -`numpy.rec.fromfile` can now use file-like objects, for instance -:py:class:`io.BytesIO` diff --git a/doc/release/upcoming_changes/16710.improvement.rst b/doc/release/upcoming_changes/16710.improvement.rst deleted file mode 100644 index 4194c36a8..000000000 --- a/doc/release/upcoming_changes/16710.improvement.rst +++ /dev/null @@ -1,3 +0,0 @@ -RPATH support on AIX added to distutils ---------------------------------------- -This allows SciPy to be built on AIX. diff --git a/doc/release/upcoming_changes/16730.improvement.rst b/doc/release/upcoming_changes/16730.improvement.rst deleted file mode 100644 index 44ec03caf..000000000 --- a/doc/release/upcoming_changes/16730.improvement.rst +++ /dev/null @@ -1,9 +0,0 @@ -Use f90 compiler specified in command line args --------------------------------------------------------- - -The compiler command selection for Fortran Portland Group Compiler is changed in `numpy.distutils.fcompiler`. -This only affects the linking command. -This forces the use of the executable provided by the command line option (if provided) -instead of the pgfortran executable. -If no executable is provided to the command line option it defaults to the pgf90 executable, -wich is an alias for pgfortran according to the PGI documentation. diff --git a/doc/release/upcoming_changes/16815.compatibility.rst b/doc/release/upcoming_changes/16815.compatibility.rst deleted file mode 100644 index ceaf12a57..000000000 --- a/doc/release/upcoming_changes/16815.compatibility.rst +++ /dev/null @@ -1,8 +0,0 @@ -``mgrid``, ``r_``, etc. consistently return correct outputs for non-default precision input -------------------------------------------------------------------------------------------- -Previously, ``np.mgrid[np.float32(0.1):np.float32(0.35):np.float32(0.1),]`` -and ``np.r_[0:10:np.complex64(3j)]`` failed to return meaningful output. -This bug potentially affects `~numpy.mgrid`, `~numpy.ogrid`, `~numpy.r_`, -and `~numpy.c_` when an input with dtype other than the default -``float64`` and ``complex128`` and equivalent Python types were used. -The methods have been fixed to handle varying precision correctly. diff --git a/doc/release/upcoming_changes/16841.change.rst b/doc/release/upcoming_changes/16841.change.rst deleted file mode 100644 index 3ddd24078..000000000 --- a/doc/release/upcoming_changes/16841.change.rst +++ /dev/null @@ -1,19 +0,0 @@ -``np.linspace`` on integers now use floor ------------------------------------------ -When using a `int` dtype in `numpy.linspace`, previously float values would -be rounded towards zero. Now `numpy.floor` is used instead, which rounds toward -``-inf``. This changes the results for negative values. For example, the -following would previously give:: - - >>> np.linspace(-3, 1, 8, dtype=int) - array([-3, -2, -1, -1, 0, 0, 0, 1]) - -and now results in:: - - >>> np.linspace(-3, 1, 8, dtype=int) - array([-3, -3, -2, -2, -1, -1, 0, 1]) - -The former result can still be obtained with:: - - >>> np.linspace(-3, 1, 8).astype(int) - array([-3, -2, -1, -1, 0, 0, 0, 1]) diff --git a/doc/release/upcoming_changes/16938.c_api.rst b/doc/release/upcoming_changes/16938.c_api.rst deleted file mode 100644 index aff72c8e5..000000000 --- a/doc/release/upcoming_changes/16938.c_api.rst +++ /dev/null @@ -1,19 +0,0 @@ -Size of ``np.ndarray`` and ``np.void_`` changed ------------------------------------------------ -The size of the ``PyArrayObject`` and ``PyVoidScalarObject`` -structures have changed. The following header definition has been -removed:: - - #define NPY_SIZEOF_PYARRAYOBJECT (sizeof(PyArrayObject_fields)) - -since the size must not be considered a compile time constant: it will -change for different runtime versions of NumPy. - -The most likely relevant use are potential subclasses written in C which -will have to be recompiled and should be updated. Please see the -documentation for :c:type:`PyArrayObject` for more details and contact -the NumPy developers if you are affected by this change. - -NumPy will attempt to give a graceful error but a program expecting a -fixed structure size may have undefined behaviour and likely crash. - diff --git a/doc/release/upcoming_changes/16986.improvement.rst b/doc/release/upcoming_changes/16986.improvement.rst deleted file mode 100644 index 391322d9d..000000000 --- a/doc/release/upcoming_changes/16986.improvement.rst +++ /dev/null @@ -1,7 +0,0 @@ -Add NumPy declarations for Cython 3.0 and later ------------------------------------------------ - -The pxd declarations for Cython 3.0 were improved to avoid using deprecated -NumPy C-API features. Extension modules built with Cython 3.0+ that use NumPy -can now set the C macro ``NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION`` to avoid -C compiler warnings about deprecated API usage. diff --git a/doc/release/upcoming_changes/17010.compatibility.rst b/doc/release/upcoming_changes/17010.compatibility.rst deleted file mode 100644 index 72ca0a963..000000000 --- a/doc/release/upcoming_changes/17010.compatibility.rst +++ /dev/null @@ -1,24 +0,0 @@ -Boolean array indices with mismatching shapes now properly give ``IndexError`` ------------------------------------------------------------------------------- - -Previously, if a boolean array index matched the size of the indexed array but -not the shape, it was incorrectly allowed in some cases. In other cases, it -gave an error, but the error was incorrectly a ``ValueError`` with a message -about broadcasting instead of the correct ``IndexError``. - -For example, the following used to incorrectly give ``ValueError: operands -could not be broadcast together with shapes (2,2) (1,4)``: - -.. code:: python - - np.empty((2, 2))[np.array([[True, False, False, False]])] - -And the following used to incorrectly return ``array([], dtype=float64)``: - -.. code:: python - - np.empty((2, 2))[np.array([[False, False, False, False]])] - -Both now correctly give ``IndexError: boolean index did not match indexed -array along dimension 0; dimension is 2 but corresponding boolean dimension is -1``. diff --git a/doc/release/upcoming_changes/17029.compatibility.rst b/doc/release/upcoming_changes/17029.compatibility.rst deleted file mode 100644 index 69069ce18..000000000 --- a/doc/release/upcoming_changes/17029.compatibility.rst +++ /dev/null @@ -1,14 +0,0 @@ -Casting errors interrupt Iteration ----------------------------------- -When iterating while casting values, an error may stop the iteration -earlier than before. In any case, a failed casting operation always -returned undefined, partial results. Those may now be even more -undefined and partial. -For users of the ``NpyIter`` C-API such cast errors will now -cause the `iternext()` function to return 0 and thus abort -iteration. -Currently, there is no API to detect such an error directly. -It is necessary to check ``PyErr_Occurred()``, which -may be problematic in combination with ``NpyIter_Reset``. -These issues always existed, but new API could be added -if required by users. diff --git a/doc/release/upcoming_changes/17067.expired.rst b/doc/release/upcoming_changes/17067.expired.rst deleted file mode 100644 index a1065d2c3..000000000 --- a/doc/release/upcoming_changes/17067.expired.rst +++ /dev/null @@ -1,8 +0,0 @@ -Financial functions removed ---------------------------- -In accordance with NEP 32, the financial functions are removed -from NumPy 1.20. The functions that have been removed are ``fv``, -``ipmt``, ``irr``, ``mirr``, ``nper``, ``npv``, ``pmt``, ``ppmt``, -``pv``, and ``rate``. These functions are available in the -`numpy_financial <https://pypi.org/project/numpy-financial>`_ -library. diff --git a/doc/release/upcoming_changes/17068.compatibility.rst b/doc/release/upcoming_changes/17068.compatibility.rst deleted file mode 100644 index 7aa4e58ae..000000000 --- a/doc/release/upcoming_changes/17068.compatibility.rst +++ /dev/null @@ -1,4 +0,0 @@ -f2py generated code may return unicode instead of byte strings --------------------------------------------------------------- -Some byte strings previously returned by f2py generated code may now be unicode -strings. This results from the ongoing Python2 -> Python3 cleanup. diff --git a/doc/release/upcoming_changes/17116.expired.rst b/doc/release/upcoming_changes/17116.expired.rst deleted file mode 100644 index d8a3a43d5..000000000 --- a/doc/release/upcoming_changes/17116.expired.rst +++ /dev/null @@ -1,2 +0,0 @@ -* The 14-year deprecation of ``np.ctypeslib.ctypes_load_library`` is expired. - Use :func:`~numpy.ctypeslib.load_library` instead, which is identical. diff --git a/doc/release/upcoming_changes/17123.new_feature.rst b/doc/release/upcoming_changes/17123.new_feature.rst deleted file mode 100644 index e2aca3c55..000000000 --- a/doc/release/upcoming_changes/17123.new_feature.rst +++ /dev/null @@ -1,12 +0,0 @@ -``mypy`` tests can be run via runtests.py ------------------------------------------ -Currently running mypy with the NumPy stubs configured requires -either: - -* Installing NumPy -* Adding the source directory to MYPYPATH and linking to the mypy.ini - -Both options are somewhat inconvenient, so add a ``--mypy`` option to runtests -that handles setting things up for you. This will also be useful in the future -for any typing codegen since it will ensure the project is built before type -checking. diff --git a/doc/release/upcoming_changes/17195.improvement.rst b/doc/release/upcoming_changes/17195.improvement.rst deleted file mode 100644 index d5f31dd3f..000000000 --- a/doc/release/upcoming_changes/17195.improvement.rst +++ /dev/null @@ -1,5 +0,0 @@ -Make the window functions exactly symmetric -------------------------------------------- -Make sure the window functions provided by NumPy are symmetric. There were -previously small deviations from symmetry due to numerical precision that are -now avoided by better arrangement of the computation. diff --git a/doc/release/upcoming_changes/17219.new_feature.rst b/doc/release/upcoming_changes/17219.new_feature.rst deleted file mode 100644 index 23f0296ae..000000000 --- a/doc/release/upcoming_changes/17219.new_feature.rst +++ /dev/null @@ -1,12 +0,0 @@ -Negation of user-defined BLAS/LAPACK detection order ----------------------------------------------------- -`~numpy.distutils` allows negation of libraries when determining BLAS/LAPACK -libraries. -This may be used to remove an item from the library resolution phase, i.e. -to disallow NetLIB libraries one could do: - -.. code:: bash - - NPY_BLAS_ORDER='^blas' NPY_LAPACK_ORDER='^lapack' python setup.py build - -which will use any of the accelerated libraries instead. diff --git a/doc/release/upcoming_changes/17233.deprecation.rst b/doc/release/upcoming_changes/17233.deprecation.rst deleted file mode 100644 index 7615b85c4..000000000 --- a/doc/release/upcoming_changes/17233.deprecation.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``ndincr`` method of ``ndindex`` is deprecated --------------------------------------------------- -The documentation has warned against using this function since NumPy 1.8. -Use ``next(it)`` instead of ``it.ndincr()``. diff --git a/doc/release/upcoming_changes/17241.compatibility.rst b/doc/release/upcoming_changes/17241.compatibility.rst deleted file mode 100644 index 671f73d1e..000000000 --- a/doc/release/upcoming_changes/17241.compatibility.rst +++ /dev/null @@ -1,6 +0,0 @@ -The first element of the ``__array_interface__["data"]`` tuple must be an integer ----------------------------------------------------------------------------------- -This has been the documented interface for many years, but there was still -code that would accept a byte string representation of the pointer address. -That code has been removed, passing the address as a byte string will now -raise an error. diff --git a/doc/release/upcoming_changes/17284.new_feature.rst b/doc/release/upcoming_changes/17284.new_feature.rst deleted file mode 100644 index 9fb59e942..000000000 --- a/doc/release/upcoming_changes/17284.new_feature.rst +++ /dev/null @@ -1,6 +0,0 @@ -Allow passing optimizations arguments to asv build --------------------------------------------------- -It is now possible to pass ``-j``, ``--cpu-baseline``, ``--cpu-dispatch`` and -``--disable-optimization`` flags to ASV build when the ``--bench-compare`` -argument is used. - diff --git a/doc/release/upcoming_changes/17344.new_feature.rst b/doc/release/upcoming_changes/17344.new_feature.rst deleted file mode 100644 index 225bb0d5a..000000000 --- a/doc/release/upcoming_changes/17344.new_feature.rst +++ /dev/null @@ -1,3 +0,0 @@ -The NVIDIA HPC SDK nvfortran compiler is now supported ------------------------------------------------------- -Support for the nvfortran compiler, a version of pgfortran, has been added. diff --git a/doc/release/upcoming_changes/17394.new_function.rst b/doc/release/upcoming_changes/17394.new_function.rst deleted file mode 100644 index 25e1ab220..000000000 --- a/doc/release/upcoming_changes/17394.new_function.rst +++ /dev/null @@ -1,6 +0,0 @@ -``sliding_window_view`` provides a sliding window view for numpy arrays ------------------------------------------------------------------------ -`numpy.lib.stride_tricks.sliding_window_view` constructs views on numpy -arrays that offer a sliding or moving window access to the array. This allows -for the simple implementation of certain algorithms, such as running means. - diff --git a/doc/release/upcoming_changes/17456.new_feature.rst b/doc/release/upcoming_changes/17456.new_feature.rst deleted file mode 100644 index 7ab014e77..000000000 --- a/doc/release/upcoming_changes/17456.new_feature.rst +++ /dev/null @@ -1,5 +0,0 @@ -``dtype`` option for `cov` and `corrcoef` ----------------------------------------------------- -The ``dtype`` option is now available for `numpy.cov` and `numpy.corrcoef`. -It specifies which data-type the returned result should have. -By default the functions still return a `numpy.float64` result. diff --git a/doc/release/upcoming_changes/17535.new_function.rst b/doc/release/upcoming_changes/17535.new_function.rst deleted file mode 100644 index 5be5c4c51..000000000 --- a/doc/release/upcoming_changes/17535.new_function.rst +++ /dev/null @@ -1,15 +0,0 @@ -`numpy.broadcast_shapes` is a new user-facing function ------------------------------------------------------- -`~numpy.broadcast_shapes` gets the resulting shape from -broadcasting the given shape tuples against each other. - -.. code:: python - - >>> np.broadcast_shapes((1, 2), (3, 1)) - (3, 2) - - >>> np.broadcast_shapes(2, (3, 1)) - (3, 2) - - >>> np.broadcast_shapes((6, 7), (5, 6, 1), (7,), (5, 1, 7)) - (5, 6, 7) diff --git a/doc/release/upcoming_changes/17577.compatibility.rst b/doc/release/upcoming_changes/17577.compatibility.rst deleted file mode 100644 index d08805607..000000000 --- a/doc/release/upcoming_changes/17577.compatibility.rst +++ /dev/null @@ -1,6 +0,0 @@ -poly1d respects the dtype of all-zero argument ----------------------------------------------- -Previously, constructing an instance of ``poly1d`` with all-zero -coefficients would cast the coefficients to ``np.float64``. -This affected the output dtype of methods which construct -``poly1d`` instances internally, such as ``np.polymul``.
\ No newline at end of file diff --git a/doc/release/upcoming_changes/17580.compatibility.rst b/doc/release/upcoming_changes/17580.compatibility.rst deleted file mode 100644 index b8e1849af..000000000 --- a/doc/release/upcoming_changes/17580.compatibility.rst +++ /dev/null @@ -1,4 +0,0 @@ -The numpy.i file for swig is Python 3 only. -------------------------------------------- -Uses of Python 2.7 C-API functions have been updated to Python 3 only. Users -who need the old version should take it from an older version of NumPy. diff --git a/doc/release/upcoming_changes/17596.future.rst b/doc/release/upcoming_changes/17596.future.rst deleted file mode 100644 index 168556891..000000000 --- a/doc/release/upcoming_changes/17596.future.rst +++ /dev/null @@ -1,30 +0,0 @@ -Arrays cannot be using subarray dtypes --------------------------------------- -Array creation and casting using ``np.array(arr, dtype)`` -and ``arr.astype(dtype)`` will use different logic when ``dtype`` -is a subarray dtype such as ``np.dtype("(2)i,")``. - -For such a ``dtype`` the following behaviour is true:: - - res = np.array(arr, dtype) - - res.dtype is not dtype - res.dtype is dtype.base - res.shape == arr.shape + dtype.shape - -But ``res`` is filled using the logic:: - - res = np.empty(arr.shape + dtype.shape, dtype=dtype.base) - res[...] = arr - -which uses incorrect broadcasting (and often leads to an error). -In the future, this will instead cast each element individually, -leading to the same result as:: - - res = np.array(arr, dtype=np.dtype(["f", dtype]))["f"] - -Which can normally be used to opt-in to the new behaviour. - -This change does not affect ``np.array(list, dtype="(2)i,")`` unless the -``list`` itself includes at least one array. In particular, the behaviour -is unchanged for a list of tuples. diff --git a/doc/release/upcoming_changes/17706.compatibility.rst b/doc/release/upcoming_changes/17706.compatibility.rst deleted file mode 100644 index 41239dd3c..000000000 --- a/doc/release/upcoming_changes/17706.compatibility.rst +++ /dev/null @@ -1,10 +0,0 @@ -Void dtype discovery in ``np.array`` ------------------------------------- -In calls using ``np.array(..., dtype="V")``, ``arr.astype("V")``, -and similar a TypeError will now be correctly raised unless all -elements have the identical void length. An example for this is:: - - np.array([b"1", b"12"], dtype="V") - -Which previously returned an array with dtype ``"V2"`` which -cannot represent ``b"1"`` faithfully. diff --git a/doc/source/release.rst b/doc/source/release.rst index 3ef1b06bd..29199fb83 100644 --- a/doc/source/release.rst +++ b/doc/source/release.rst @@ -5,6 +5,7 @@ Release Notes .. toctree:: :maxdepth: 3 + 1.21.0 <release/1.21.0-notes> 1.20.0 <release/1.20.0-notes> 1.19.4 <release/1.19.4-notes> 1.19.3 <release/1.19.3-notes> diff --git a/doc/source/release/1.21.0-notes.rst b/doc/source/release/1.21.0-notes.rst new file mode 100644 index 000000000..5fda1f631 --- /dev/null +++ b/doc/source/release/1.21.0-notes.rst @@ -0,0 +1,6 @@ +.. currentmodule:: numpy + +========================== +NumPy 1.21.0 Release Notes +========================== + |