NervanaSystems / ngraph-onnx

nGraph™ Backend for ONNX
Apache License 2.0
42 stars 18 forks source link

Update numpy to 1.24.0 #830

Open pyup-bot opened 1 year ago

pyup-bot commented 1 year ago

This PR updates numpy from 1.18.4 to 1.24.0.

Changelog ### 1.24 ``` The NumPy 1.24.0 release continues the ongoing work to improve the handling and promotion of dtypes, increase the execution speed, and clarify the documentation. There are also a large number of new and expired deprecations due to changes in promotion and cleanups. This might be called a deprecation release. Highlights are - Many new deprecations, check them out. - Many expired deprecations, - New F2PY features and fixes. - New \"dtype\" and \"casting\" keywords for stacking functions. See below for the details, Deprecations Deprecate fastCopyAndTranspose and PyArray_CopyAndTranspose The `numpy.fastCopyAndTranspose` function has been deprecated. Use the corresponding copy and transpose methods directly: arr.T.copy() The underlying C function `PyArray_CopyAndTranspose` has also been deprecated from the NumPy C-API. ([gh-22313](https://github.com/numpy/numpy/pull/22313)) Conversion of out-of-bound Python integers Attempting a conversion from a Python integer to a NumPy value will now always check whether the result can be represented by NumPy. This means the following examples will fail in the future and give a `DeprecationWarning` now: np.uint8(-1) np.array([3000], dtype=np.int8) Many of these did succeed before. Such code was mainly useful for unsigned integers with negative values such as `np.uint8(-1)` giving `np.iinfo(np.uint8).max`. Note that conversion between NumPy integers is unaffected, so that `np.array(-1).astype(np.uint8)` continues to work and use C integer overflow logic. ([gh-22393](https://github.com/numpy/numpy/pull/22393)) Deprecate `msort` The `numpy.msort` function is deprecated. Use `np.sort(a, axis=0)` instead. ([gh-22456](https://github.com/numpy/numpy/pull/22456)) `np.str0` and similar are now deprecated The scalar type aliases ending in a 0 bit size: `np.object0`, `np.str0`, `np.bytes0`, `np.void0`, `np.int0`, `np.uint0` as well as `np.bool8` are now deprecated and will eventually be removed. ([gh-22607](https://github.com/numpy/numpy/pull/22607)) Expired deprecations - The `normed` keyword argument has been removed from [np.histogram]{.title-ref}, [np.histogram2d]{.title-ref}, and [np.histogramdd]{.title-ref}. Use `density` instead. If `normed` was passed by position, `density` is now used. ([gh-21645](https://github.com/numpy/numpy/pull/21645)) - Ragged array creation will now always raise a `ValueError` unless `dtype=object` is passed. This includes very deeply nested sequences. ([gh-22004](https://github.com/numpy/numpy/pull/22004)) - Support for Visual Studio 2015 and earlier has been removed. - Support for the Windows Interix POSIX interop layer has been removed. ([gh-22139](https://github.com/numpy/numpy/pull/22139)) - Support for cygwin \< 3.3 has been removed. ([gh-22159](https://github.com/numpy/numpy/pull/22159)) - The mini() method of `np.ma.MaskedArray` has been removed. Use either `np.ma.MaskedArray.min()` or `np.ma.minimum.reduce()`. - The single-argument form of `np.ma.minimum` and `np.ma.maximum` has been removed. Use `np.ma.minimum.reduce()` or `np.ma.maximum.reduce()` instead. ([gh-22228](https://github.com/numpy/numpy/pull/22228)) - Passing dtype instances other than the canonical (mainly native byte-order) ones to `dtype=` or `signature=` in ufuncs will now raise a `TypeError`. We recommend passing the strings `"int8"` or scalar types `np.int8` since the byte-order, datetime/timedelta unit, etc. are never enforced. (Initially deprecated in NumPy 1.21.) ([gh-22540](https://github.com/numpy/numpy/pull/22540)) - The `dtype=` argument to comparison ufuncs is now applied correctly. That means that only `bool` and `object` are valid values and `dtype=object` is enforced. ([gh-22541](https://github.com/numpy/numpy/pull/22541)) - The deprecation for the aliases `np.object`, `np.bool`, `np.float`, `np.complex`, `np.str`, and `np.int` is expired (introduces NumPy 1.20). Some of these will now give a FutureWarning in addition to raising an error since they will be mapped to the NumPy scalars in the future. ([gh-22607](https://github.com/numpy/numpy/pull/22607)) Compatibility notes `array.fill(scalar)` may behave slightly different `numpy.ndarray.fill` may in some cases behave slightly different now due to the fact that the logic is aligned with item assignment: arr = np.array([1]) with any dtype/value arr.fill(scalar) is now identical to: arr[0] = scalar Previously casting may have produced slightly different answers when using values that could not be represented in the target `dtype` or when the target had `object` dtype. ([gh-20924](https://github.com/numpy/numpy/pull/20924)) Subarray to object cast now copies Casting a dtype that includes a subarray to an object will now ensure a copy of the subarray. Previously an unsafe view was returned: arr = np.ones(3, dtype=[("f", "i", 3)]) subarray_fields = arr.astype(object)[0] subarray = subarray_fields[0] "f" field np.may_share_memory(subarray, arr) Is now always false. While previously it was true for the specific cast. ([gh-21925](https://github.com/numpy/numpy/pull/21925)) Returned arrays respect uniqueness of dtype kwarg objects When the `dtype` keyword argument is used with :py`np.array()`{.interpreted-text role="func"} or :py`asarray()`{.interpreted-text role="func"}, the dtype of the returned array now always exactly matches the dtype provided by the caller. In some cases this change means that a *view* rather than the input array is returned. The following is an example for this on 64bit Linux where `long` and `longlong` are the same precision but different `dtypes`: >>> arr = np.array([1, 2, 3], dtype="long") >>> new_dtype = np.dtype("longlong") >>> new = np.asarray(arr, dtype=new_dtype) >>> new.dtype is new_dtype True >>> new is arr False Before the change, the `dtype` did not match because `new is arr` was `True`. ([gh-21995](https://github.com/numpy/numpy/pull/21995)) DLPack export raises `BufferError` When an array buffer cannot be exported via DLPack a `BufferError` is now always raised where previously `TypeError` or `RuntimeError` was raised. This allows falling back to the buffer protocol or `__array_interface__` when DLPack was tried first. ([gh-22542](https://github.com/numpy/numpy/pull/22542)) NumPy builds are no longer tested on GCC-6 Ubuntu 18.04 is deprecated for GitHub actions and GCC-6 is not available on Ubuntu 20.04, so builds using that compiler are no longer tested. We still test builds using GCC-7 and GCC-8. ([gh-22598](https://github.com/numpy/numpy/pull/22598)) New Features New attribute `symbol` added to polynomial classes The polynomial classes in the `numpy.polynomial` package have a new `symbol` attribute which is used to represent the indeterminate of the polynomial. This can be used to change the value of the variable when printing: >>> P_y = np.polynomial.Polynomial([1, 0, -1], symbol="y") >>> print(P_y) 1.0 + 0.0·y¹ - 1.0·y² Note that the polynomial classes only support 1D polynomials, so operations that involve polynomials with different symbols are disallowed when the result would be multivariate: >>> P = np.polynomial.Polynomial([1, -1]) default symbol is "x" >>> P_z = np.polynomial.Polynomial([1, 1], symbol="z") >>> P * P_z Traceback (most recent call last) ... ValueError: Polynomial symbols differ The symbol can be any valid Python identifier. The default is `symbol=x`, consistent with existing behavior. ([gh-16154](https://github.com/numpy/numpy/pull/16154)) F2PY support for Fortran `character` strings F2PY now supports wrapping Fortran functions with: - character (e.g. `character x`) - character array (e.g. `character, dimension(n) :: x`) - character string (e.g. `character(len=10) x`) - and character string array (e.g. `character(len=10), dimension(n, m) :: x`) arguments, including passing Python unicode strings as Fortran character string arguments. ([gh-19388](https://github.com/numpy/numpy/pull/19388)) New function `np.show_runtime` A new function `numpy.show_runtime` has been added to display the runtime information of the machine in addition to `numpy.show_config` which displays the build-related information. ([gh-21468](https://github.com/numpy/numpy/pull/21468)) `strict` option for `testing.assert_array_equal` The `strict` option is now available for `testing.assert_array_equal`. Setting `strict=True` will disable the broadcasting behaviour for scalars and ensure that input arrays have the same data type. ([gh-21595](https://github.com/numpy/numpy/pull/21595)) New parameter `equal_nan` added to `np.unique` `np.unique` was changed in 1.21 to treat all `NaN` values as equal and return a single `NaN`. Setting `equal_nan=False` will restore pre-1.21 behavior to treat `NaNs` as unique. Defaults to `True`. ([gh-21623](https://github.com/numpy/numpy/pull/21623)) `casting` and `dtype` keyword arguments for `numpy.stack` The `casting` and `dtype` keyword arguments are now available for `numpy.stack`. To use them, write `np.stack(..., dtype=None, casting='same_kind')`. `casting` and `dtype` keyword arguments for `numpy.vstack` The `casting` and `dtype` keyword arguments are now available for `numpy.vstack`. To use them, write `np.vstack(..., dtype=None, casting='same_kind')`. `casting` and `dtype` keyword arguments for `numpy.hstack` The `casting` and `dtype` keyword arguments are now available for `numpy.hstack`. To use them, write `np.hstack(..., dtype=None, casting='same_kind')`. ([gh-21627](https://github.com/numpy/numpy/pull/21627)) The bit generator underlying the singleton RandomState can be changed The singleton `RandomState` instance exposed in the `numpy.random` module is initialized at startup with the `MT19937` bit generator. The new function `set_bit_generator` allows the default bit generator to be replaced with a user-provided bit generator. This function has been introduced to provide a method allowing seamless integration of a high-quality, modern bit generator in new code with existing code that makes use of the singleton-provided random variate generating functions. The companion function `get_bit_generator` returns the current bit generator being used by the singleton `RandomState`. This is provided to simplify restoring the original source of randomness if required. The preferred method to generate reproducible random numbers is to use a modern bit generator in an instance of `Generator`. The function `default_rng` simplifies instantiation: >>> rg = np.random.default_rng(3728973198) >>> rg.random() The same bit generator can then be shared with the singleton instance so that calling functions in the `random` module will use the same bit generator: >>> orig_bit_gen = np.random.get_bit_generator() >>> np.random.set_bit_generator(rg.bit_generator) >>> np.random.normal() The swap is permanent (until reversed) and so any call to functions in the `random` module will use the new bit generator. The original can be restored if required for code to run correctly: >>> np.random.set_bit_generator(orig_bit_gen) ([gh-21976](https://github.com/numpy/numpy/pull/21976)) `np.void` now has a `dtype` argument NumPy now allows constructing structured void scalars directly by passing the `dtype` argument to `np.void`. ([gh-22316](https://github.com/numpy/numpy/pull/22316)) Improvements F2PY Improvements - The generated extension modules don\'t use the deprecated NumPy-C API anymore - Improved `f2py` generated exception messages - Numerous bug and `flake8` warning fixes - various CPP macros that one can use within C-expressions of signature files are prefixed with `f2py_`. For example, one should use `f2py_len(x)` instead of `len(x)` - A new construct `character(f2py_len=...)` is introduced to support returning assumed length character strings (e.g. `character(len=*)`) from wrapper functions A hook to support rewriting `f2py` internal data structures after reading all its input files is introduced. This is required, for instance, for BC of SciPy support where character arguments are treated as character strings arguments in `C` expressions. ([gh-19388](https://github.com/numpy/numpy/pull/19388)) IBM zSystems Vector Extension Facility (SIMD) Added support for SIMD extensions of zSystem (z13, z14, z15), through the universal intrinsics interface. This support leads to performance improvements for all SIMD kernels implemented using the universal intrinsics, including the following operations: rint, floor, trunc, ceil, sqrt, absolute, square, reciprocal, tanh, sin, cos, equal, not_equal, greater, greater_equal, less, less_equal, maximum, minimum, fmax, fmin, argmax, argmin, add, subtract, multiply, divide. ([gh-20913](https://github.com/numpy/numpy/pull/20913)) NumPy now gives floating point errors in casts In most cases, NumPy previously did not give floating point warnings or errors when these happened during casts. For examples, casts like: np.array([2e300]).astype(np.float32) overflow for float32 np.array([np.inf]).astype(np.int64) Should now generally give floating point warnings. These warnings should warn that floating point overflow occurred. For errors when converting floating point values to integers users should expect invalid value warnings. Users can modify the behavior of these warnings using `np.errstate`. Note that for float to int casts, the exact warnings that are given may be platform dependent. For example: arr = np.full(100, value=1000, dtype=np.float64) arr.astype(np.int8) May give a result equivalent to (the intermediate cast means no warning is given): arr.astype(np.int64).astype(np.int8) May return an undefined result, with a warning set: RuntimeWarning: invalid value encountered in cast The precise behavior is subject to the C99 standard and its implementation in both software and hardware. ([gh-21437](https://github.com/numpy/numpy/pull/21437)) F2PY supports the value attribute The Fortran standard requires that variables declared with the `value` attribute must be passed by value instead of reference. F2PY now supports this use pattern correctly. So `integer, intent(in), value :: x` in Fortran codes will have correct wrappers generated. ([gh-21807](https://github.com/numpy/numpy/pull/21807)) Added pickle support for third-party BitGenerators The pickle format for bit generators was extended to allow each bit generator to supply its own constructor when during pickling. Previous versions of NumPy only supported unpickling `Generator` instances created with one of the core set of bit generators supplied with NumPy. Attempting to unpickle a `Generator` that used a third-party bit generators would fail since the constructor used during the unpickling was only aware of the bit generators included in NumPy. ([gh-22014](https://github.com/numpy/numpy/pull/22014)) arange() now explicitly fails with dtype=str Previously, the `np.arange(n, dtype=str)` function worked for `n=1` and `n=2`, but would raise a non-specific exception message for other values of `n`. Now, it raises a [TypeError]{.title-ref} informing that `arange` does not support string dtypes: >>> np.arange(2, dtype=str) Traceback (most recent call last) ... TypeError: arange() not supported for inputs with DType <class 'numpy.dtype[str_]'>. ([gh-22055](https://github.com/numpy/numpy/pull/22055)) `numpy.typing` protocols are now runtime checkable The protocols used in `numpy.typing.ArrayLike` and `numpy.typing.DTypeLike` are now properly marked as runtime checkable, making them easier to use for runtime type checkers. ([gh-22357](https://github.com/numpy/numpy/pull/22357)) Performance improvements and changes Faster version of `np.isin` and `np.in1d` for integer arrays `np.in1d` (used by `np.isin`) can now switch to a faster algorithm (up to \>10x faster) when it is passed two integer arrays. This is often automatically used, but you can use `kind="sort"` or `kind="table"` to force the old or new method, respectively. ([gh-12065](https://github.com/numpy/numpy/pull/12065)) Faster comparison operators The comparison functions (`numpy.equal`, `numpy.not_equal`, `numpy.less`, `numpy.less_equal`, `numpy.greater` and `numpy.greater_equal`) are now much faster as they are now vectorized with universal intrinsics. For a CPU with SIMD extension AVX512BW, the performance gain is up to 2.57x, 1.65x and 19.15x for integer, float and boolean data types, respectively (with N=50000). ([gh-21483](https://github.com/numpy/numpy/pull/21483)) Changes Better reporting of integer division overflow Integer division overflow of scalars and arrays used to provide a `RuntimeWarning` and the return value was undefined leading to crashes at rare occasions: >>> np.array([np.iinfo(np.int32).min]*10, dtype=np.int32) // np.int32(-1) <stdin>:1: RuntimeWarning: divide by zero encountered in floor_divide array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int32) Integer division overflow now returns the input dtype\'s minimum value and raise the following `RuntimeWarning`: >>> np.array([np.iinfo(np.int32).min]*10, dtype=np.int32) // np.int32(-1) <stdin>:1: RuntimeWarning: overflow encountered in floor_divide array([-2147483648, -2147483648, -2147483648, -2147483648, -2147483648, -2147483648, -2147483648, -2147483648, -2147483648, -2147483648], dtype=int32) ([gh-21506](https://github.com/numpy/numpy/pull/21506)) `masked_invalid` now modifies the mask in-place When used with `copy=False`, `numpy.ma.masked_invalid` now modifies the input masked array in-place. This makes it behave identically to `masked_where` and better matches the documentation. ([gh-22046](https://github.com/numpy/numpy/pull/22046)) `nditer`/`NpyIter` allows all allocating all operands The NumPy iterator available through `np.nditer` in Python and as `NpyIter` in C now supports allocating all arrays. The iterator shape defaults to `()` in this case. The operands dtype must be provided, since a \"common dtype\" cannot be inferred from the other inputs. ([gh-22457](https://github.com/numpy/numpy/pull/22457)) Checksums MD5 1f08c901040ebe1324d16cfc71fe3cd2 numpy-1.24.0rc1-cp310-cp310-macosx_10_9_x86_64.whl d35a59a1ccf1542d690860ad85fbb0f0 numpy-1.24.0rc1-cp310-cp310-macosx_11_0_arm64.whl c7db37964986d7b9756fd1aa077b7e72 numpy-1.24.0rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 72c2dad61fc86c4d87e23d0de975e0b6 numpy-1.24.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3c769f1089253266d7a522144696bde3 numpy-1.24.0rc1-cp310-cp310-win32.whl 96226a2045063b9caff40fe2a2098e72 numpy-1.24.0rc1-cp310-cp310-win_amd64.whl b20897446f52e7fcde80e12c7cc1dc1e numpy-1.24.0rc1-cp311-cp311-macosx_10_9_x86_64.whl 9cafe21759e90c705533d1f3201d35aa numpy-1.24.0rc1-cp311-cp311-macosx_11_0_arm64.whl 0e8621d07dae7ffaba6cfe83f7288042 numpy-1.24.0rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 0c67808eed6ba6f9e9074e6f11951f09 numpy-1.24.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 1065bea5d0670360353e698093954e35 numpy-1.24.0rc1-cp311-cp311-win32.whl fe2122ec86b45e00b648071ee2931fbc numpy-1.24.0rc1-cp311-cp311-win_amd64.whl ab3e8424a04338d43ed466ade66de7a8 numpy-1.24.0rc1-cp38-cp38-macosx_10_9_x86_64.whl fc6eac08a59c4efb3962d990ff94f2b7 numpy-1.24.0rc1-cp38-cp38-macosx_11_0_arm64.whl 3498ac93ae6abba813e5d76f86ae5356 numpy-1.24.0rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 629ce4b8cb011ff735ebd482fbf51702 numpy-1.24.0rc1-cp38-cp38-win32.whl cb503a78e27f0f46b6b43d211275dc58 numpy-1.24.0rc1-cp38-cp38-win_amd64.whl ffccdb9750336f5e55ab90c8eb7c1a8d numpy-1.24.0rc1-cp39-cp39-macosx_10_9_x86_64.whl 9751b9f833238a7309ad4e6b43fa8cb5 numpy-1.24.0rc1-cp39-cp39-macosx_11_0_arm64.whl cb8a10f411773f0ac5e06df067599d45 numpy-1.24.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 8d670816134824972afb512498b95ede numpy-1.24.0rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 60687b97ab720f6be9e3542e5761769f numpy-1.24.0rc1-cp39-cp39-win32.whl 11fd99748acc0726ac164034c32bb3cd numpy-1.24.0rc1-cp39-cp39-win_amd64.whl 09e1d6f6d75facaf84d2b87a33874d4b numpy-1.24.0rc1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl 2da9ad07343b410aca4edf1285e4266b numpy-1.24.0rc1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 9a0e466a55632cc1d67db119f586cd05 numpy-1.24.0rc1-pp38-pypy38_pp73-win_amd64.whl abc863895b02cdcc436474f6cdf2d14d numpy-1.24.0rc1.tar.gz SHA256 36acf6043b94a0e8af75d0a1931678d20e673b83fd79798c805ebc995e233cff numpy-1.24.0rc1-cp310-cp310-macosx_10_9_x86_64.whl 244c2c22f776e168e1060112f87717d73df2462e0eba4095a7673fe87db49b7a numpy-1.24.0rc1-cp310-cp310-macosx_11_0_arm64.whl 730112e692c165e8ad69071c70653522ee19d8c8af2da839339de01013eeef24 numpy-1.24.0rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 960b0d980adfa5c37fea89fc556bb482f9d957a3188be46d03a00fa1bd8f617b numpy-1.24.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl f54788f1a6941cb1b57bcf5ff09a281e5db75bbf9f2ac9534a626128ded0244f numpy-1.24.0rc1-cp310-cp310-win32.whl 07fef63a5113969d7897589928870c57dd3e28671d617f688486f12c3a3b466a numpy-1.24.0rc1-cp310-cp310-win_amd64.whl aea88e02d9335052172f4d6c8163721c3edd086ea3bf3bc9b6d5c55661540f1b numpy-1.24.0rc1-cp311-cp311-macosx_10_9_x86_64.whl 3950be11c03d250ea780280ce37a6fe7bd21dafcb478e08190c72b6c58ed7d18 numpy-1.24.0rc1-cp311-cp311-macosx_11_0_arm64.whl 743c30cda228f8be9fe552453870b412b38ac232972c617a0f18765dedf395a5 numpy-1.24.0rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl cab1335b70e24e88ef2b9f727b9f5fc6e0d31d9fe9da0213f6c28cf615b65db0 numpy-1.24.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 5283759f0dd905f9e62ed55775345fbb233a53146ceaf2f75e96d939f564ee79 numpy-1.24.0rc1-cp311-cp311-win32.whl 427bd9c45777e8baf782b6b33ebc26a88716c2d9b76b0474987660c2c066dca0 numpy-1.24.0rc1-cp311-cp311-win_amd64.whl 20edfad312395d1cb8ad6ca5d2c42d2dab057f5d1920af3f94c7a72103335d8a numpy-1.24.0rc1-cp38-cp38-macosx_10_9_x86_64.whl 79134b92e1fb86915369753b3e64a359416cd98ea2329d270eb4e1d0ab300c0d numpy-1.24.0rc1-cp38-cp38-macosx_11_0_arm64.whl 6f00858573e2316ac5d190cf81dc178d94579969f827ac34c7a53110428e6f72 numpy-1.24.0rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl a8d6f78be3ad0bd9b4adecba2fda570ef491ae69f8c7cc84acd382802a81e242 numpy-1.24.0rc1-cp38-cp38-win32.whl f1f5fa912df64dd48ec55352b72f4b036ab7b3911e996703f436e17baca780f9 numpy-1.24.0rc1-cp38-cp38-win_amd64.whl 8d149b3c3062dc68e29bdb244edc30c5d80e2c654b5c27c32773bf7354452b48 numpy-1.24.0rc1-cp39-cp39-macosx_10_9_x86_64.whl d177fbd4d22248640d73f07c3aac2cc1f79c412f61564452abd08606ee5e3713 numpy-1.24.0rc1-cp39-cp39-macosx_11_0_arm64.whl 05faa4ecb98d7bc593afc5b10c25f0e7dd65244b653756b083c605fbf60b9b67 numpy-1.24.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 06d8827c6fa511b61047376efc3a677d447193bf88e6bbde35b4e5223a4b58d6 numpy-1.24.0rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 15605b92bf10b10e110a9c0f1c4ef6cd58246532c62a0c3d3188c05e69cdcdb6 numpy-1.24.0rc1-cp39-cp39-win32.whl 8046f5c23769791be8432a592b9881984e0e4abc7f552c7e5c349420a27323e7 numpy-1.24.0rc1-cp39-cp39-win_amd64.whl aa9c4a2f65d669e6559123154da944ad6bd7605cbba5cce81bf6794617870510 numpy-1.24.0rc1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl e44fd1bdfa50979ddec76318e21abc82ee3858e5f45dfc5153b6f660d9d29851 numpy-1.24.0rc1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 1802199d70d9f8ac11eb63a1ef50d33915b78a84bacacaadb2896175005103d4 numpy-1.24.0rc1-pp38-pypy38_pp73-win_amd64.whl d601180710004799acb8f80e564b84e71490fac9d84e115e2f5b0f6709754f16 numpy-1.24.0rc1.tar.gz ``` ### 1.23.5 ``` the 1.23.4 release and keeps the build infrastructure current. The Python versions supported for this release are 3.8-3.11. Contributors A total of 7 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - \DWesl - Aayush Agrawal + - Adam Knapp + - Charles Harris - Navpreet Singh + - Sebastian Berg - Tania Allard Pull requests merged A total of 10 pull requests were merged for this release. - [22489](https://github.com/numpy/numpy/pull/22489): TST, MAINT: Replace most setup with setup_method (also teardown) - [22490](https://github.com/numpy/numpy/pull/22490): MAINT, CI: Switch to cygwin/cygwin-install-actionv2 - [22494](https://github.com/numpy/numpy/pull/22494): TST: Make test_partial_iteration_cleanup robust but require leak\... - [22592](https://github.com/numpy/numpy/pull/22592): MAINT: Ensure graceful handling of large header sizes - [22593](https://github.com/numpy/numpy/pull/22593): TYP: Spelling alignment for array flag literal - [22594](https://github.com/numpy/numpy/pull/22594): BUG: Fix bounds checking for `random.logseries` - [22595](https://github.com/numpy/numpy/pull/22595): DEV: Update GH actions and Dockerfile for Gitpod - [22596](https://github.com/numpy/numpy/pull/22596): CI: Only fetch in actions/checkout - [22597](https://github.com/numpy/numpy/pull/22597): BUG: Decrement ref count in gentype_reduce if allocated memory\... - [22625](https://github.com/numpy/numpy/pull/22625): BUG: Histogramdd breaks on big arrays in Windows Checksums MD5 8a412b79d975199cefadb465279fd569 numpy-1.23.5-cp310-cp310-macosx_10_9_x86_64.whl 1b56e8e6a0516c78473657abf0710538 numpy-1.23.5-cp310-cp310-macosx_11_0_arm64.whl c787f4763c9a5876e86a17f1651ba458 numpy-1.23.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl db07645022e56747ba3f00c2d742232e numpy-1.23.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl c63a6fb7cc16a13aabc82ec57ac6bb4d numpy-1.23.5-cp310-cp310-win32.whl 3fea9247e1d812600015641941fa273f numpy-1.23.5-cp310-cp310-win_amd64.whl 4222cfb36e5ac9aec348c81b075e2c05 numpy-1.23.5-cp311-cp311-macosx_10_9_x86_64.whl 6c7102f185b310ac70a62c13d46f04e6 numpy-1.23.5-cp311-cp311-macosx_11_0_arm64.whl 6b7319f66bf7ac01b49e2a32470baf28 numpy-1.23.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3c60928ddb1f55163801f06ac2229eb0 numpy-1.23.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 6936b6bcfd6474acc7a8c162a9393b3c numpy-1.23.5-cp311-cp311-win32.whl 6c9af68b7b56c12c913678cafbdc44d6 numpy-1.23.5-cp311-cp311-win_amd64.whl 699daeac883260d3f182ae4bbbd9bbd2 numpy-1.23.5-cp38-cp38-macosx_10_9_x86_64.whl 6c233a36339de0652139e78ef91504d4 numpy-1.23.5-cp38-cp38-macosx_11_0_arm64.whl 57d5439556ab5078c91bdeffd9c0036e numpy-1.23.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl a8045b59187f2e0ccd4294851adbbb8a numpy-1.23.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 7f38f7e560e4bf41490372ab84aa7a38 numpy-1.23.5-cp38-cp38-win32.whl 76095726ba459d7f761b44acf2e56bd1 numpy-1.23.5-cp38-cp38-win_amd64.whl 174befd584bc1b03ed87c8f0d149a58e numpy-1.23.5-cp39-cp39-macosx_10_9_x86_64.whl 9cbac793d77278f5d27a7979b64f6b5b numpy-1.23.5-cp39-cp39-macosx_11_0_arm64.whl 6e417b087044e90562183b33f3049b09 numpy-1.23.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 54fa63341eaa6da346d824399e8237f6 numpy-1.23.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl cc14d62a158e99c57f925c86551e45f0 numpy-1.23.5-cp39-cp39-win32.whl bad36b81e7e84bd7a028affa0659d235 numpy-1.23.5-cp39-cp39-win_amd64.whl b4d17d6b79a8354a2834047669651963 numpy-1.23.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl 89f6dc4a4ff63fca6af1223111cd888d numpy-1.23.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 633d574a35b8592bab502ef569b0731e numpy-1.23.5-pp38-pypy38_pp73-win_amd64.whl 8b2692a511a3795f3af8af2cd7566a15 numpy-1.23.5.tar.gz SHA256 9c88793f78fca17da0145455f0d7826bcb9f37da4764af27ac945488116efe63 numpy-1.23.5-cp310-cp310-macosx_10_9_x86_64.whl e9f4c4e51567b616be64e05d517c79a8a22f3606499941d97bb76f2ca59f982d numpy-1.23.5-cp310-cp310-macosx_11_0_arm64.whl 7903ba8ab592b82014713c491f6c5d3a1cde5b4a3bf116404e08f5b52f6daf43 numpy-1.23.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 5e05b1c973a9f858c74367553e236f287e749465f773328c8ef31abe18f691e1 numpy-1.23.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 522e26bbf6377e4d76403826ed689c295b0b238f46c28a7251ab94716da0b280 numpy-1.23.5-cp310-cp310-win32.whl dbee87b469018961d1ad79b1a5d50c0ae850000b639bcb1b694e9981083243b6 numpy-1.23.5-cp310-cp310-win_amd64.whl ce571367b6dfe60af04e04a1834ca2dc5f46004ac1cc756fb95319f64c095a96 numpy-1.23.5-cp311-cp311-macosx_10_9_x86_64.whl 56e454c7833e94ec9769fa0f86e6ff8e42ee38ce0ce1fa4cbb747ea7e06d56aa numpy-1.23.5-cp311-cp311-macosx_11_0_arm64.whl 5039f55555e1eab31124a5768898c9e22c25a65c1e0037f4d7c495a45778c9f2 numpy-1.23.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 58f545efd1108e647604a1b5aa809591ccd2540f468a880bedb97247e72db387 numpy-1.23.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl b2a9ab7c279c91974f756c84c365a669a887efa287365a8e2c418f8b3ba73fb0 numpy-1.23.5-cp311-cp311-win32.whl 0cbe9848fad08baf71de1a39e12d1b6310f1d5b2d0ea4de051058e6e1076852d numpy-1.23.5-cp311-cp311-win_amd64.whl f063b69b090c9d918f9df0a12116029e274daf0181df392839661c4c7ec9018a numpy-1.23.5-cp38-cp38-macosx_10_9_x86_64.whl 0aaee12d8883552fadfc41e96b4c82ee7d794949e2a7c3b3a7201e968c7ecab9 numpy-1.23.5-cp38-cp38-macosx_11_0_arm64.whl 92c8c1e89a1f5028a4c6d9e3ccbe311b6ba53694811269b992c0b224269e2398 numpy-1.23.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl d208a0f8729f3fb790ed18a003f3a57895b989b40ea4dce4717e9cf4af62c6bb numpy-1.23.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 06005a2ef6014e9956c09ba07654f9837d9e26696a0470e42beedadb78c11b07 numpy-1.23.5-cp38-cp38-win32.whl ca51fcfcc5f9354c45f400059e88bc09215fb71a48d3768fb80e357f3b457e1e numpy-1.23.5-cp38-cp38-win_amd64.whl 8969bfd28e85c81f3f94eb4a66bc2cf1dbdc5c18efc320af34bffc54d6b1e38f numpy-1.23.5-cp39-cp39-macosx_10_9_x86_64.whl a7ac231a08bb37f852849bbb387a20a57574a97cfc7b6cabb488a4fc8be176de numpy-1.23.5-cp39-cp39-macosx_11_0_arm64.whl bf837dc63ba5c06dc8797c398db1e223a466c7ece27a1f7b5232ba3466aafe3d numpy-1.23.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 33161613d2269025873025b33e879825ec7b1d831317e68f4f2f0f84ed14c719 numpy-1.23.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl af1da88f6bc3d2338ebbf0e22fe487821ea4d8e89053e25fa59d1d79786e7481 numpy-1.23.5-cp39-cp39-win32.whl 09b7847f7e83ca37c6e627682f145856de331049013853f344f37b0c9690e3df numpy-1.23.5-cp39-cp39-win_amd64.whl abdde9f795cf292fb9651ed48185503a2ff29be87770c3b8e2a14b0cd7aa16f8 numpy-1.23.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl f9a909a8bae284d46bbfdefbdd4a262ba19d3bc9921b1e76126b1d21c3c34135 numpy-1.23.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 01dd17cbb340bf0fc23981e52e1d18a9d4050792e8fb8363cecbf066a84b827d numpy-1.23.5-pp38-pypy38_pp73-win_amd64.whl 1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a numpy-1.23.5.tar.gz ``` ### 1.23.4 ``` the 1.23.3 release and keeps the build infrastructure current. The main improvements are fixes for some annotation corner cases, a fix for a long time `nested_iters` memory leak, and a fix of complex vector dot for very large arrays. The Python versions supported for this release are 3.8-3.11. Note that the mypy version needs to be 0.981+ if you test using Python 3.10.7, otherwise the typing tests will fail. Contributors A total of 8 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - Bas van Beek - Charles Harris - Matthew Barber - Matti Picus - Ralf Gommers - Ross Barnowski - Sebastian Berg - Sicheng Zeng + Pull requests merged A total of 13 pull requests were merged for this release. - [22368](https://github.com/numpy/numpy/pull/22368): BUG: Add `__array_api_version__` to `numpy.array_api` namespace - [22370](https://github.com/numpy/numpy/pull/22370): MAINT: update sde toolkit to 9.0, fix download link - [22382](https://github.com/numpy/numpy/pull/22382): BLD: use macos-11 image on azure, macos-1015 is deprecated - [22383](https://github.com/numpy/numpy/pull/22383): MAINT: random: remove `get_info` from \"extending with Cython\"\... - [22384](https://github.com/numpy/numpy/pull/22384): BUG: Fix complex vector dot with more than NPY_CBLAS_CHUNK elements - [22387](https://github.com/numpy/numpy/pull/22387): REV: Loosen `lookfor`\'s import try/except again - [22388](https://github.com/numpy/numpy/pull/22388): TYP,ENH: Mark `numpy.typing` protocols as runtime checkable - [22389](https://github.com/numpy/numpy/pull/22389): TYP,MAINT: Change more overloads to play nice with pyright - [22390](https://github.com/numpy/numpy/pull/22390): TST,TYP: Bump mypy to 0.981 - [22391](https://github.com/numpy/numpy/pull/22391): DOC: Update delimiter param description. - [22392](https://github.com/numpy/numpy/pull/22392): BUG: Memory leaks in numpy.nested_iters - [22413](https://github.com/numpy/numpy/pull/22413): REL: Prepare for the NumPy 1.23.4 release. - [22424](https://github.com/numpy/numpy/pull/22424): TST: Fix failing aarch64 wheel builds. Checksums MD5 90a3d95982490cfeeef22c0f7cbd874f numpy-1.23.4-cp310-cp310-macosx_10_9_x86_64.whl c3cae63394db6c82fd2cb5700fc5917d numpy-1.23.4-cp310-cp310-macosx_11_0_arm64.whl b3ff0878de205f56c38fd7dcab80081f numpy-1.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl e2b086ca2229209f2f996c2f9a38bf9c numpy-1.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 44cc8bb112ca737520cf986fff92dfb0 numpy-1.23.4-cp310-cp310-win32.whl 21c8e5fdfba2ff953e446189379cf0c9 numpy-1.23.4-cp310-cp310-win_amd64.whl 27445a9c85977cb8efa682a4b993347f numpy-1.23.4-cp311-cp311-macosx_10_9_x86_64.whl 11ef4b7dfdaa37604cb881f3ca4459db numpy-1.23.4-cp311-cp311-macosx_11_0_arm64.whl b3c77344274f91514f728a454fd471fa numpy-1.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 43aef7f984cd63d95c11fb74dd59ef0b numpy-1.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 637fe21b585228c9670d6e002bf8047f numpy-1.23.4-cp311-cp311-win32.whl f529edf9b849d6e3b8cdb5120ae5b81a numpy-1.23.4-cp311-cp311-win_amd64.whl 76c61ce36317a7e509663829c6844fd9 numpy-1.23.4-cp38-cp38-macosx_10_9_x86_64.whl 2133f6893eef41cd9331c7d0271044c4 numpy-1.23.4-cp38-cp38-macosx_11_0_arm64.whl 5ccb3aa6fb8cb9e20ec336e315d01dec numpy-1.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl da71f34a4df0b98e4d9e17906dd57b07 numpy-1.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl a318978f51fb80a17c2381e39194e906 numpy-1.23.4-cp38-cp38-win32.whl eac810d6bc43830bf151ea55cd0ded93 numpy-1.23.4-cp38-cp38-win_amd64.whl 4cf0a6007abe42564c7380dbf92a26ce numpy-1.23.4-cp39-cp39-macosx_10_9_x86_64.whl 2e005bedf129ce8bafa6f550537f3740 numpy-1.23.4-cp39-cp39-macosx_11_0_arm64.whl 10aa210311fcd19a03f6c5495824a306 numpy-1.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 6301298a67999657a0878b64eeed09f2 numpy-1.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 76144e575a3c3863ea22e03cdf022d8a numpy-1.23.4-cp39-cp39-win32.whl 8291dd66ef5451b4db2da55c21535757 numpy-1.23.4-cp39-cp39-win_amd64.whl 7cc095b18690071828b5b620d5ec40e7 numpy-1.23.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl 63742f15e8bfa215c893136bbfc6444f numpy-1.23.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 4ed382e55abc09c89a34db047692f6a6 numpy-1.23.4-pp38-pypy38_pp73-win_amd64.whl d9ffd2c189633486ec246e61d4b947a0 numpy-1.23.4.tar.gz SHA256 95d79ada05005f6f4f337d3bb9de8a7774f259341c70bc88047a1f7b96a4bcb2 numpy-1.23.4-cp310-cp310-macosx_10_9_x86_64.whl 926db372bc4ac1edf81cfb6c59e2a881606b409ddc0d0920b988174b2e2a767f numpy-1.23.4-cp310-cp310-macosx_11_0_arm64.whl c237129f0e732885c9a6076a537e974160482eab8f10db6292e92154d4c67d71 numpy-1.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl a8365b942f9c1a7d0f0dc974747d99dd0a0cdfc5949a33119caf05cb314682d3 numpy-1.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2341f4ab6dba0834b685cce16dad5f9b6606ea8a00e6da154f5dbded70fdc4dd numpy-1.23.4-cp310-cp310-win32.whl d331afac87c92373826af83d2b2b435f57b17a5c74e6268b79355b970626e329 numpy-1.23.4-cp310-cp310-win_amd64.whl 488a66cb667359534bc70028d653ba1cf307bae88eab5929cd707c761ff037db numpy-1.23.4-cp311-cp311-macosx_10_9_x86_64.whl ce03305dd694c4873b9429274fd41fc7eb4e0e4dea07e0af97a933b079a5814f numpy-1.23.4-cp311-cp311-macosx_11_0_arm64.whl 8981d9b5619569899666170c7c9748920f4a5005bf79c72c07d08c8a035757b0 numpy-1.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 7a70a7d3ce4c0e9284e92285cba91a4a3f5214d87ee0e95928f3614a256a1488 numpy-1.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 5e13030f8793e9ee42f9c7d5777465a560eb78fa7e11b1c053427f2ccab90c79 numpy-1.23.4-cp311-cp311-win32.whl 7607b598217745cc40f751da38ffd03512d33ec06f3523fb0b5f82e09f6f676d numpy-1.23.4-cp311-cp311-win_amd64.whl 7ab46e4e7ec63c8a5e6dbf5c1b9e1c92ba23a7ebecc86c336cb7bf3bd2fb10e5 numpy-1.23.4-cp38-cp38-macosx_10_9_x86_64.whl a8aae2fb3180940011b4862b2dd3756616841c53db9734b27bb93813cd79fce6 numpy-1.23.4-cp38-cp38-macosx_11_0_arm64.whl 8c053d7557a8f022ec823196d242464b6955a7e7e5015b719e76003f63f82d0f numpy-1.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl a0882323e0ca4245eb0a3d0a74f88ce581cc33aedcfa396e415e5bba7bf05f68 numpy-1.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl dada341ebb79619fe00a291185bba370c9803b1e1d7051610e01ed809ef3a4ba numpy-1.23.4-cp38-cp38-win32.whl 0fe563fc8ed9dc4474cbf70742673fc4391d70f4363f917599a7fa99f042d5a8 numpy-1.23.4-cp38-cp38-win_amd64.whl c67b833dbccefe97cdd3f52798d430b9d3430396af7cdb2a0c32954c3ef73894 numpy-1.23.4-cp39-cp39-macosx_10_9_x86_64.whl f76025acc8e2114bb664294a07ede0727aa75d63a06d2fae96bf29a81747e4a7 numpy-1.23.4-cp39-cp39-macosx_11_0_arm64.whl 12ac457b63ec8ded85d85c1e17d85efd3c2b0967ca39560b307a35a6703a4735 numpy-1.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 95de7dc7dc47a312f6feddd3da2500826defdccbc41608d0031276a24181a2c0 numpy-1.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl f2f390aa4da44454db40a1f0201401f9036e8d578a25f01a6e237cea238337ef numpy-1.23.4-cp39-cp39-win32.whl f260da502d7441a45695199b4e7fd8ca87db659ba1c78f2bbf31f934fe76ae0e numpy-1.23.4-cp39-cp39-win_amd64.whl 61be02e3bf810b60ab74e81d6d0d36246dbfb644a462458bb53b595791251911 numpy-1.23.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl 296d17aed51161dbad3c67ed6d164e51fcd18dbcd5dd4f9d0a9c6055dce30810 numpy-1.23.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 4d52914c88b4930dafb6c48ba5115a96cbab40f45740239d9f4159c4ba779962 numpy-1.23.4-pp38-pypy38_pp73-win_amd64.whl ed2cc92af0efad20198638c69bb0fc2870a58dabfba6eb722c933b48556c686c numpy-1.23.4.tar.gz ``` ### 1.23.3 ``` the 1.23.2 release. There is no major theme for this release, the main improvements are for some downstream builds and some annotation corner cases. The Python versions supported for this release are 3.8-3.11. Note that we will move to MacOS 11 for the NumPy 1.23.4 release, the ``` ### 1.23.2 ``` the 1.23.1 release. Notable features are: - Typing changes needed for Python 3.11 - Wheels for Python 3.11.0rc1 The Python versions supported for this release are 3.8-3.11. Contributors A total of 9 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - Alexander Grund + - Bas van Beek - Charles Harris - Jon Cusick + - Matti Picus - Michael Osthege + - Pal Barta + - Ross Barnowski - Sebastian Berg Pull requests merged A total of 15 pull requests were merged for this release. - [22030](https://github.com/numpy/numpy/pull/22030): ENH: Add `__array_ufunc__` typing support to the `nin=1` ufuncs - [22031](https://github.com/numpy/numpy/pull/22031): MAINT, TYP: Fix `np.angle` dtype-overloads - [22032](https://github.com/numpy/numpy/pull/22032): MAINT: Do not let `_GenericAlias` wrap the underlying classes\'\... - [22033](https://github.com/numpy/numpy/pull/22033): TYP,MAINT: Allow `einsum` subscripts to be passed via integer\... - [22034](https://github.com/numpy/numpy/pull/22034): MAINT,TYP: Add object-overloads for the `np.generic` rich comparisons - [22035](https://github.com/numpy/numpy/pull/22035): MAINT,TYP: Allow the `squeeze` and `transpose` method to\... - [22036](https://github.com/numpy/numpy/pull/22036): BUG: Fix subarray to object cast ownership details - [22037](https://github.com/numpy/numpy/pull/22037): BUG: Use `Popen` to silently invoke f77 -v - [22038](https://github.com/numpy/numpy/pull/22038): BUG: Avoid errors on NULL during deepcopy - [22039](https://github.com/numpy/numpy/pull/22039): DOC: Add versionchanged for converter callable behavior. - [22057](https://github.com/numpy/numpy/pull/22057): MAINT: Quiet the anaconda uploads. - [22078](https://github.com/numpy/numpy/pull/22078): ENH: reorder includes for testing on top of system installations\... - [22106](https://github.com/numpy/numpy/pull/22106): TST: fix test_linear_interpolation_formula_symmetric - [22107](https://github.com/numpy/numpy/pull/22107): BUG: Fix skip condition for test_loss_of_precision\[complex256\] - [22115](https://github.com/numpy/numpy/pull/22115): BLD: Build python3.11.0rc1 wheels. Checksums MD5 fe1e3480ea8c417c8f7b05f543c1448d numpy-1.23.2-cp310-cp310-macosx_10_9_x86_64.whl 0ab14b1afd0a55a374ca69b3b39cab3c numpy-1.23.2-cp310-cp310-macosx_11_0_arm64.whl df059e5405bfe75c0ac77b01abbdb237 numpy-1.23.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 4ed412c4c078e96edf11ca3b11eef76b numpy-1.23.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 0caad53d9a5e3c5e8cd29f19a9f0c014 numpy-1.23.2-cp310-cp310-win32.whl 01e508b8b4f591daff128da1cfde8e1f numpy-1.23.2-cp310-cp310-win_amd64.whl 8ecdb7e2a87255878b748550d91cfbe0 numpy-1.23.2-cp311-cp311-macosx_10_9_x86_64.whl e3004aae46cec9e234f78eaf473272e0 numpy-1.23.2-cp311-cp311-macosx_11_0_arm64.whl ec23c73caf581867d5ca9255b802f144 numpy-1.23.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 9b8389f528fe113247954248f0b78ce1 numpy-1.23.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl a54b136daa2fbb483909f08eecbfa3c5 numpy-1.23.2-cp311-cp311-win32.whl ead32e141857c5ef33b1a6cd88aefc0f numpy-1.23.2-cp311-cp311-win_amd64.whl df1f18e52d0a2840d101fdc9c2c6af84 numpy-1.23.2-cp38-cp38-macosx_10_9_x86_64.whl 04c986880bb24fac2f44face75eab914 numpy-1.23.2-cp38-cp38-macosx_11_0_arm64.whl edeba58edb214390112810f7ead903a8 numpy-1.23.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl c26ea699d94d7f1009c976c66cc4def3 numpy-1.23.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl c246a78b09f8893d998d449dcab0fac3 numpy-1.23.2-cp38-cp38-win32.whl b5c5a2f961402259e301c49b8b05de55 numpy-1.23.2-cp38-cp38-win_amd64.whl d156dfae94d33eeff7fb9c6e5187e049 numpy-1.23.2-cp39-cp39-macosx_10_9_x86_64.whl 7f2ad7867c577eab925a31de76486765 numpy-1.23.2-cp39-cp39-macosx_11_0_arm64.whl 76262a8e5d7a4d945446467467300a10 numpy-1.23.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 8ee105f4574d61a2d494418b55f63fcb numpy-1.23.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2b7c79cae66023f8e716150223201981 numpy-1.23.2-cp39-cp39-win32.whl d7af57dd070ccb165f3893412eb602e3 numpy-1.23.2-cp39-cp39-win_amd64.whl 355a231dbd87a0f2125cc23eb8f97075 numpy-1.23.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl 4ab13c35056f67981d03f9ceec41db42 numpy-1.23.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3a6f1e1256ee9be10d8cdf6be578fe52 numpy-1.23.2-pp38-pypy38_pp73-win_amd64.whl 9bf2a361509797de14ceee607387fe0f numpy-1.23.2.tar.gz SHA256 e603ca1fb47b913942f3e660a15e55a9ebca906857edfea476ae5f0fe9b457d5 numpy-1.23.2-cp310-cp310-macosx_10_9_x86_64.whl 633679a472934b1c20a12ed0c9a6c9eb167fbb4cb89031939bfd03dd9dbc62b8 numpy-1.23.2-cp310-cp310-macosx_11_0_arm64.whl 17e5226674f6ea79e14e3b91bfbc153fdf3ac13f5cc54ee7bc8fdbe820a32da0 numpy-1.23.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl bdc02c0235b261925102b1bd586579b7158e9d0d07ecb61148a1799214a4afd5 numpy-1.23.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl df28dda02c9328e122661f399f7655cdcbcf22ea42daa3650a26bce08a187450 numpy-1.23.2-cp310-cp310-win32.whl 8ebf7e194b89bc66b78475bd3624d92980fca4e5bb86dda08d677d786fefc414 numpy-1.23.2-cp310-cp310-win_amd64.whl dc76bca1ca98f4b122114435f83f1fcf3c0fe48e4e6f660e07996abf2f53903c numpy-1.23.2-cp311-cp311-macosx_10_9_x86_64.whl ecfdd68d334a6b97472ed032b5b37a30d8217c097acfff15e8452c710e775524 numpy-1.23.2-cp311-cp311-macosx_11_0_arm64.whl 5593f67e66dea4e237f5af998d31a43e447786b2154ba1ad833676c788f37cde numpy-1.23.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl ac987b35df8c2a2eab495ee206658117e9ce867acf3ccb376a19e83070e69418 numpy-1.23.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl d98addfd3c8728ee8b2c49126f3c44c703e2b005d4a95998e2167af176a9e722 numpy-1.23.2-cp311-cp311-win32.whl 8ecb818231afe5f0f568c81f12ce50f2b828ff2b27487520d85eb44c71313b9e numpy-1.23.2-cp311-cp311-win_amd64.whl 909c56c4d4341ec8315291a105169d8aae732cfb4c250fbc375a1efb7a844f8f numpy-1.23.2-cp38-cp38-macosx_10_9_x86_64.whl 8247f01c4721479e482cc2f9f7d973f3f47810cbc8c65e38fd1bbd3141cc9842 numpy-1.23.2-cp38-cp38-macosx_11_0_arm64.whl b8b97a8a87cadcd3f94659b4ef6ec056261fa1e1c3317f4193ac231d4df70215 numpy-1.23.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl bd5b7ccae24e3d8501ee5563e82febc1771e73bd268eef82a1e8d2b4d556ae66 numpy-1.23.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 9b83d48e464f393d46e8dd8171687394d39bc5abfe2978896b77dc2604e8635d numpy-1.23.2-cp38-cp38-win32.whl dec198619b7dbd6db58603cd256e092bcadef22a796f778bf87f8592b468441d numpy-1.23.2-cp38-cp38-win_amd64.whl 4f41f5bf20d9a521f8cab3a34557cd77b6f205ab2116651f12959714494268b0 numpy-1.23.2-cp39-cp39-macosx_10_9_x86_64.whl 806cc25d5c43e240db709875e947076b2826f47c2c340a5a2f36da5bb10c58d6 numpy-1.23.2-cp39-cp39-macosx_11_0_arm64.whl 8f9d84a24889ebb4c641a9b99e54adb8cab50972f0166a3abc14c3b93163f074 numpy-1.23.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl c403c81bb8ffb1c993d0165a11493fd4bf1353d258f6997b3ee288b0a48fce77 numpy-1.23.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl cf8c6aed12a935abf2e290860af8e77b26a042eb7f2582ff83dc7ed5f963340c numpy-1.23.2-cp39-cp39-win32.whl 5e28cd64624dc2354a349152599e55308eb6ca95a13ce6a7d5679ebff2962913 numpy-1.23.2-cp39-cp39-win_amd64.whl 806970e69106556d1dd200e26647e9bee5e2b3f1814f9da104a943e8d548ca38 numpy-1.23.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl 2bd879d3ca4b6f39b7770829f73278b7c5e248c91d538aab1e506c628353e47f numpy-1.23.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl be6b350dfbc7f708d9d853663772a9310783ea58f6035eec649fb9c4371b5389 numpy-1.23.2-pp38-pypy38_pp73-win_amd64.whl b78d00e48261fbbd04aa0d7427cf78d18401ee0abd89c7559bbf422e5b1c7d01 numpy-1.23.2.tar.gz ``` ### 1.23.1 ``` The NumPy 1.23.1 is a maintenance release that fixes bugs discovered after the 1.23.0 release. Notable fixes are: - Fix searchsorted for float16 NaNs - Fix compilation on Apple M1 - Fix KeyError in crackfortran operator support (Slycot) The Python version supported for this release are 3.8-3.10. Contributors A total of 7 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - Charles Harris - Matthias Koeppe + - Pranab Das + - Rohit Goswami - Sebastian Berg - Serge Guelton - Srimukh Sripada + Pull requests merged A total of 8 pull requests were merged for this release. - [21866](https://github.com/numpy/numpy/pull/21866): BUG: Fix discovered MachAr (still used within valgrind) - [21867](https://github.com/numpy/numpy/pull/21867): BUG: Handle NaNs correctly for float16 during sorting - [21868](https://github.com/numpy/numpy/pull/21868): BUG: Use `keepdims` during normalization in `np.average` and\... - [21869](https://github.com/numpy/numpy/pull/21869): DOC: mention changes to `max_rows` behaviour in `np.loadtxt` - [21870](https://github.com/numpy/numpy/pull/21870): BUG: Reject non integer array-likes with size 1 in delete - [21949](https://github.com/numpy/numpy/pull/21949): BLD: Make can_link_svml return False for 32bit builds on x86_64 - [21951](https://github.com/numpy/numpy/pull/21951): BUG: Reorder extern \"C\" to only apply to function declarations\... - [21952](https://github.com/numpy/numpy/pull/21952): BUG: Fix KeyError in crackfortran operator support Checksums MD5 79f0d8c114f282b834b49209d6955f98 numpy-1.23.1-cp310-cp310-macosx_10_9_x86_64.whl 42a89a88ef26b768e8933ce46b1cc2bd numpy-1.23.1-cp310-cp310-macosx_11_0_arm64.whl 1c1d68b3483eaf99b9a3583c8ac8bf47 numpy-1.23.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 9d3e9f7f9b3dce6cf15209e4f25f346e numpy-1.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl a9afb7c34b48d08fc50427ae6516b42d numpy-1.23.1-cp310-cp310-win32.whl a0e02823883bdfcec49309e108f65e13 numpy-1.23.1-cp310-cp310-win_amd64.whl f40cdf4ec7bb0cf31a90a4fa294323c2 numpy-1.23.1-cp38-cp38-macosx_10_9_x86_64.whl 80115a959f0fe30d6c401b2650a61c70 numpy-1.23.1-cp38-cp38-macosx_11_0_arm64.whl 1cf199b3a93960c4f269853a56a8d8eb numpy-1.23.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl aa6f0f192312c79cd770c2c395e9982a numpy-1.23.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl d07bee0ea3142a96cb5e4e16aca273ca numpy-1.23.1-cp38-cp38-win32.whl 02d0734ae8ad5e18a40c6c6de18486a0 numpy-1.23.1-cp38-cp38-win_amd64.whl e1ca14acd7d83bc74bdf6ab0bb4bd195 numpy-1.23.1-cp39-cp39-macosx_10_9_x86_64.whl c9152c62b2f31e742e24bfdc97b28666 numpy-1.23.1-cp39-cp39-macosx_11_0_arm64.whl 05b0b37c92f7a7e7c01afac0a5322b40 numpy-1.23.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl d9810bb71a0ef9837e87ea5c44fcab5e numpy-1.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 4255577f857e838f7a94e3a614ddc5eb numpy-1.23.1-cp39-cp39-win32.whl 787486e3cd87b98024ffe1c969c4db7a numpy-1.23.1-cp39-cp39-win_amd64.whl 5c7b2d1471b1b9ec6ff1cb3fe1f8ac14 numpy-1.23.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl 40d5b2ff869707b0d97325ce44631135 numpy-1.23.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 44ce1e07927cc09415df9898857792da numpy-1.23.1-pp38-pypy38_pp73-win_amd64.whl 4f8636a9c1a77ca0fb923ba55378891f numpy-1.23.1.tar.gz SHA256 b15c3f1ed08df4980e02cc79ee058b788a3d0bef2fb3c9ca90bb8cbd5b8a3a04 numpy-1.23.1-cp310-cp310-macosx_10_9_x86_64.whl 9ce242162015b7e88092dccd0e854548c0926b75c7924a3495e02c6067aba1f5 numpy-1.23.1-cp310-cp310-macosx_11_0_arm64.whl e0d7447679ae9a7124385ccf0ea990bb85bb869cef217e2ea6c844b6a6855073 numpy-1.23.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3119daed207e9410eaf57dcf9591fdc68045f60483d94956bee0bfdcba790953 numpy-1.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3ab67966c8d45d55a2bdf40701536af6443763907086c0a6d1232688e27e5447 numpy-1.23.1-cp310-cp310-win32.whl 1865fdf51446839ca3fffaab172461f2b781163f6f395f1aed256b1ddc253622 numpy-1.23.1-cp310-cp310-win_amd64.whl aeba539285dcf0a1ba755945865ec61240ede5432df41d6e29fab305f4384db2 numpy-1.23.1-cp38-cp38-macosx_10_9_x86_64.whl 7e8229f3687cdadba2c4faef39204feb51ef7c1a9b669247d49a24f3e2e1617c numpy-1.23.1-cp38-cp38-macosx_11_0_arm64.whl 68b69f52e6545af010b76516f5daaef6173e73353e3295c5cb9f96c35d755641 numpy-1.23.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1408c3527a74a0209c781ac82bde2182b0f0bf54dea6e6a363fe0cc4488a7ce7 numpy-1.23.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 47f10ab202fe4d8495ff484b5561c65dd59177949ca07975663f4494f7269e3e numpy-1.23.1-cp38-cp38-win32.whl 37e5ebebb0eb54c5b4a9b04e6f3018e16b8ef257d26c8945925ba8105008e645 numpy-1.23.1-cp38-cp38-win_amd64.whl 173f28921b15d341afadf6c3898a34f20a0569e4ad5435297ba262ee8941e77b numpy-1.23.1-cp39-cp39-macosx_10_9_x86_64.whl 876f60de09734fbcb4e27a97c9a286b51284df1326b1ac5f1bf0ad3678236b22 numpy-1.23.1-cp39-cp39-macosx_11_0_arm64.whl 35590b9c33c0f1c9732b3231bb6a72d1e4f77872390c47d50a615686ae7ed3fd numpy-1.23.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl a35c4e64dfca659fe4d0f1421fc0f05b8ed1ca8c46fb73d9e5a7f175f85696bb numpy-1.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl c2f91f88230042a130ceb1b496932aa717dcbd665350beb821534c5c7e15881c numpy-1.23.1-cp39-cp39-win32.whl 37ece2bd095e9781a7156852e43d18044fd0d742934833335599c583618181b9 numpy-1.23.1-cp39-cp39-win_amd64.whl 8002574a6b46ac3b5739a003b5233376aeac5163e5dcd43dd7ad062f3e186129 numpy-1.23.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl 5d732d17b8a9061540a10fda5bfeabca5785700ab5469a5e9b93aca5e2d3a5fb numpy-1.23.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 55df0f7483b822855af67e38fb3a526e787adf189383b4934305565d71c4b148 numpy-1.23.1-pp38-pypy38_pp73-win_amd64.whl d748ef349bfef2e1194b59da37ed5a29c19ea8d7e6342019921ba2ba4fd8b624 numpy-1.23.1.tar.gz ``` ### 1.23.0 ``` The NumPy 1.23.0 release continues the ongoing work to improve the handling and promotion of dtypes, increase the execution speed, clarify the documentation, and expire old deprecations. The highlights are: - Implementation of `loadtxt` in C, greatly improving its performance. - Exposing DLPack at the Python level for easy data exchange. - Changes to the promotion and comparisons of structured dtypes. - Improvements to f2py. See below for the details, New functions - A masked array specialization of `ndenumerate` is now available as `numpy.ma.ndenumerate`. It provides an alternative to `numpy.ndenumerate` and skips masked values by default. ([gh-20020](https://github.com/numpy/numpy/pull/20020)) - `numpy.from_dlpack` has been added to allow easy exchange of data using the DLPack protocol. It accepts Python objects that implement the `__dlpack__` and `__dlpack_device__` methods and returns a ndarray object which is generally the view of the data of the input object. ([gh-21145](https://github.com/numpy/numpy/pull/21145)) Deprecations - Setting `__array_finalize__` to `None` is deprecated. It must now be a method and may wish to call `super().__array_finalize__(obj)` after checking for `None` or if the NumPy version is sufficiently new. ([gh-20766](https://github.com/numpy/numpy/pull/20766)) - Using `axis=32` (`axis=np.MAXDIMS`) in many cases had the same meaning as `axis=None`. This is deprecated and `axis=None` must be used instead. ([gh-20920](https://github.com/numpy/numpy/pull/20920)) - The hook function `PyDataMem_SetEventHook` has been deprecated and the demonstration of its use in tool/allocation_tracking has been removed. The ability to track allocations is now built-in to python via `tracemalloc`. ([gh-20394](https://github.com/numpy/numpy/pull/20394)) - `numpy.distutils` has been deprecated, as a result of `distutils` itself being deprecated. It will not be present in NumPy for Python >= 3.12, and will be removed completely 2 years after the release of Python 3.12 For more details, see `distutils-status-migration`{.interpreted-text role="ref"}. ([gh-20875](https://github.com/numpy/numpy/pull/20875)) Expired deprecations - The `NpzFile.iteritems()` and `NpzFile.iterkeys()` methods have been removed as part of the continued removal of Python 2 compatibility. This concludes the deprecation from 1.15. ([gh-16830](https://github.com/numpy/numpy/pull/16830)) - The `alen` and `asscalar` functions have been removed. ([gh-20414](https://github.com/numpy/numpy/pull/20414)) - The `UPDATEIFCOPY` array flag has been removed together with the enum `NPY_ARRAY_UPDATEIFCOPY`. The associated (and deprecated) `PyArray_XDECREF_ERR` was also removed. These were all deprecated in 1.14. They are replaced by `WRITEBACKIFCOPY`, that requires calling `PyArray_ResoveWritebackIfCopy` before the array is deallocated. ([gh-20589](https://github.com/numpy/numpy/pull/20589)) - Exceptions will be raised during array-like creation. When an object raised an exception during access of the special attributes `__array__` or `__array_interface__`, this exception was usually ignored. This behaviour was deprecated in 1.21, and the exception will now be raised. ([gh-20835](https://github.com/numpy/numpy/pull/20835)) - Multidimensional indexing with non-tuple values is not allowed. Previously, code such as `arr[ind]` where `ind = [[0, 1], [0, 1]]` produced a `FutureWarning` and was interpreted as a multidimensional index (i.e., `arr[tuple(ind)]`). Now this example is treated like an array index over a single dimension (`arr[array(ind)]`). Multidimensional indexing with anything but a tuple was deprecated in NumPy 1.15. ([gh-21029](https://github.com/numpy/numpy/pull/21029)) - Changing to a dtype of different size in F-contiguous arrays is no longer permitted. Deprecated since Numpy 1.11.0. See below for an extended explanation of the effects of this change. ([gh-20722](https://github.com/numpy/numpy/pull/20722)) New Features crackfortran has support for operator and assignment overloading `crackfortran` parser now understands operator and assignment definitions in a module. They are added in the `body` list of the module which contains a new key `implementedby` listing the names of the subroutines or functions implementing the operator or assignment. ([gh-15006](https://github.com/numpy/numpy/pull/15006)) f2py supports reading access type attributes from derived type statements As a result, one does not need to use `public` or `private` statements to specify derived type access properties. ([gh-15844](https://github.com/numpy/numpy/pull/15844)) New parameter `ndmin` added to `genfromtxt` This parameter behaves the same as `ndmin` from `numpy.loadtxt`. ([gh-20500](https://github.com/numpy/numpy/pull/20500)) `np.loadtxt` now supports quote character and single converter function `numpy.loadtxt` now supports an additional `quotechar` keyword argument which is not set by default. Using `quotechar='"'` will read quoted fields as used by the Excel CSV dialect. Further, it is now possible to pass a single callable rather than a dictionary for the `converters` argument. ([gh-20580](https://github.com/numpy/numpy/pull/20580)) Changing to dtype of a different size now requires contiguity of only the last axis Previously, viewing an array with a dtype of a different item size required that the entire array be C-contiguous. This limitation would unnecessarily force the user to make contiguous copies of non-contiguous arrays before being able to change the dtype. This change affects not only `ndarray.view`, but other construction mechanisms, including the discouraged direct assignment to `ndarray.dtype`. This change expires the deprecation regarding the viewing of F-contiguous arrays, described elsewhere in the release notes. ([gh-20722](https://github.com/numpy/numpy/pull/20722)) Deterministic output files for F2PY For F77 inputs, `f2py` will generate `modname-f2pywrappers.f` unconditionally, though these may be empty. For free-form inputs, `modname-f2pywrappers.f`, `modname-f2pywrappers2.f90` will both be generated unconditionally, and may be empty. This allows writing generic output rules in `cmake` or `meson` and other build systems. Older behavior can be restored by passing `--skip-empty-wrappers` to `f2py`. `f2py-meson`{.interpreted-text role="ref"} details usage. ([gh-21187](https://github.com/numpy/numpy/pull/21187)) `keepdims` parameter for `average` The parameter `keepdims` was added to the functions `numpy.average` and `numpy.ma.average`. The parameter has the same meaning as it does in reduction functions such as `numpy.sum` or `numpy.mean`. ([gh-21485](https://github.com/numpy/numpy/pull/21485)) Compatibility notes 1D `np.linalg.norm` preserves float input types, even for scalar results Previously, this would promote to `float64` when the `ord` argument was not one of the explicitly listed values, e.g. `ord=3`: >>> f32 = np.float32([1, 2]) >>> np.linalg.norm(f32, 2).dtype dtype('float32') >>> np.linalg.norm(f32, 3) dtype('float64') numpy 1.22 dtype('float32') numpy 1.23 This change affects only `float32` and `float16` vectors with `ord` other than `-Inf`, `0`, `1`, `2`, and `Inf`. ([gh-17709](https://github.com/numpy/numpy/pull/17709)) Changes to structured (void) dtype promotion and comparisons In general, NumPy now defines correct, but slightly limited, promotion for structured dtypes by promoting the subtypes of each field instead of raising an exception: >>> np.result_type(np.dtype("i,i"), np.dtype("i,d")) dtype([('f0', '<i4'), ('f1', '<f8')]) For promotion matching field names, order, and titles are enforced, however padding is ignored. Promotion involving structured dtypes now always ensures native byte-order for all fields (which may change the result of `np.concatenate`) and ensures that the result will be \"packed\", i.e. all fields are ordered contiguously and padding is removed. See `structured_dtype_comparison_and_promotion`{.interpreted-text role="ref"} for further details. The `repr` of aligned structures will now never print the long form including `offsets` and `itemsize` unless the structure includes padding not guaranteed by `align=True`. In alignment with the above changes to the promotion logic, the casting safety has been updated: - `"equiv"` enforces matching names and titles. The itemsize is allowed to differ due to padding. - `"safe"` allows mismatching field names and titles - The cast safety is limited by the cast safety of each included field. - The order of fields is used to decide cast safety of each individual field. Previously, the field names were used and only unsafe casts were possible when names mismatched. The main important change here is that name mismatches are now considered \"safe\" casts. ([gh-19226](https://github.com/numpy/numpy/pull/19226)) `NPY_RELAXED_STRIDES_CHECKING` has been removed NumPy cannot be compiled with `NPY_RELAXED_STRIDES_CHECKING=0` anymore. Relaxed strides have been the default for many years and the option was initially introduced to allow a smoother transition. ([gh-20220](https://github.com/numpy/numpy/pull/20220)) `np.loadtxt` has recieved several changes The row counting of `numpy.loadtxt` was fixed. `loadtxt` ignores fully empty lines in the file, but counted them towards `max_rows`. When `max_rows` is used and the file contains empty lines, these will now not be counted. Previously, it was possible that the result contained fewer than `max_rows` rows even though more data was available to be read. If