Closed renovate[bot] closed 1 year ago
Because you closed this PR without merging, Renovate will ignore this update (==1.25.1). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps
array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.
This PR contains the following updates:
==1.24.2
->==1.25.1
Release Notes
numpy/numpy (numpy)
### [`v1.25.1`](https://togithub.com/numpy/numpy/releases/tag/v1.25.1) [Compare Source](https://togithub.com/numpy/numpy/compare/v1.25.0...v1.25.1) ### NumPy 1.25.1 Release Notes NumPy 1.25.1 is a maintenance release that fixes bugs and regressions discovered after the 1.25.0 release. The Python versions supported by this release are 3.9-3.11. #### Contributors A total of 10 people contributed to this release. People with a "+" by their names contributed a patch for the first time. - Andrew Nelson - Charles Harris - Developer-Ecosystem-Engineering - Hood Chatham - Nathan Goldbaum - Rohit Goswami - Sebastian Berg - Tim Paine + - dependabot\[bot] - matoro + #### Pull requests merged A total of 14 pull requests were merged for this release. - [#23968](https://togithub.com/numpy/numpy/pull/23968): MAINT: prepare 1.25.x for further development - [#24036](https://togithub.com/numpy/numpy/pull/24036): BLD: Port long double identification to C for meson - [#24037](https://togithub.com/numpy/numpy/pull/24037): BUG: Fix reduction `return NULL` to be `goto fail` - [#24038](https://togithub.com/numpy/numpy/pull/24038): BUG: Avoid undefined behavior in array.astype() - [#24039](https://togithub.com/numpy/numpy/pull/24039): BUG: Ensure `__array_ufunc__` works without any kwargs passed - [#24117](https://togithub.com/numpy/numpy/pull/24117): MAINT: Pin urllib3 to avoid anaconda-client bug. - [#24118](https://togithub.com/numpy/numpy/pull/24118): TST: Pin pydantic<2 in Pyodide workflow - [#24119](https://togithub.com/numpy/numpy/pull/24119): MAINT: Bump pypa/cibuildwheel from 2.13.0 to 2.13.1 - [#24120](https://togithub.com/numpy/numpy/pull/24120): MAINT: Bump actions/checkout from 3.5.2 to 3.5.3 - [#24122](https://togithub.com/numpy/numpy/pull/24122): BUG: Multiply or Divides using SIMD without a full vector can... - [#24127](https://togithub.com/numpy/numpy/pull/24127): MAINT: testing for IS_MUSL closes [#24074](https://togithub.com/numpy/numpy/issues/24074) - [#24128](https://togithub.com/numpy/numpy/pull/24128): BUG: Only replace dtype temporarily if dimensions changed - [#24129](https://togithub.com/numpy/numpy/pull/24129): MAINT: Bump actions/setup-node from 3.6.0 to 3.7.0 - [#24134](https://togithub.com/numpy/numpy/pull/24134): BUG: Fix private procedures in f2py modules #### Checksums ##### MD5 d09d98643db31e892fad11b8c2b7af22 numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl d5b8d3b0424e2af41018f35a087c4500 numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl 1007893b1a8bfd97d445a63d29d33642 numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 6a62d7a6cee310b41dc872aa7f3d7e8b numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl e81f6264aecfa2269c5d29d10c362cbc numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl ab8ecd125ca86eac0b3ada67ab66dad6 numpy-1.25.1-cp310-cp310-win32.whl 5466bebeaafcc3d6e1b98858d77ff945 numpy-1.25.1-cp310-cp310-win_amd64.whl f31b059256ae09b7b83df63f52d8371e numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl 099f74d654888869704469c321af845d numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl 20d04dccd2bfca5cfd88780d1dc9a3f8 numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 61dfd7c00638e83a7af59b86615ee9d2 numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 4eb459c3d9479c4da2fdf20e4c4085d0 numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl 5e84e797866c68ba65fa89a4bf4ba8ce numpy-1.25.1-cp311-cp311-win32.whl 87bb1633b2e8029dbfa1e59f7ab22625 numpy-1.25.1-cp311-cp311-win_amd64.whl 3fcf2eb5970d848a26abdff1b10228e7 numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl d71e1cbe18fe05944219e5a5be1796bf numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl 5b457e10834c991bca84aae7eaa49f34 numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 5cbb4c2f2892fafdf6f34fcb37c9e743 numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 7d9d1ae23cf5420652088bfe8e048d89 numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl 7e5bed491b85f0d7c718d6809f9b3ed2 numpy-1.25.1-cp39-cp39-win32.whl 838e97b751bebadf47e2196b2c88ffa2 numpy-1.25.1-cp39-cp39-win_amd64.whl 9ba95d8d6004d9659d7728fe93f67be9 numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl fbccb20254a2dc85bdec549a03b8eb56 numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 95e36689e6dd078caf11e7e2a2d5f5f1 numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl 768d0ebf15e2242f4c7ca7565bb5dd3e numpy-1.25.1.tar.gz ##### SHA256 77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl 4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588 numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19 numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503 numpy-1.25.1-cp310-cp310-win32.whl c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57 numpy-1.25.1-cp310-cp310-win_amd64.whl 6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800 numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl 41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09 numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6 numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl 791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb numpy-1.25.1-cp311-cp311-win32.whl c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171 numpy-1.25.1-cp311-cp311-win_amd64.whl 3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105 numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl 1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625 numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7 numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl 247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c numpy-1.25.1-cp39-cp39-win32.whl 1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631 numpy-1.25.1-cp39-cp39-win_amd64.whl 35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009 numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl 0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004 numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl 9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf numpy-1.25.1.tar.gz ### [`v1.25.0`](https://togithub.com/numpy/numpy/releases/tag/v1.25.0) [Compare Source](https://togithub.com/numpy/numpy/compare/v1.24.4...v1.25.0) ### NumPy 1.25.0 Release Notes The NumPy 1.25.0 release continues the ongoing work to improve the handling and promotion of dtypes, increase the execution speed, and clarify the documentation. There has also been work to prepare for the future NumPy 2.0.0 release, resulting in a large number of new and expired deprecation. Highlights are: - Support for MUSL, there are now MUSL wheels. - Support the Fujitsu C/C++ compiler. - Object arrays are now supported in einsum - Support for inplace matrix multiplication (`@=`). We will be releasing a NumPy 1.26 when Python 3.12 comes out. That is needed because distutils has been dropped by Python 3.12 and we will be switching to using meson for future builds. The next mainline release will be NumPy 2.0.0. We plan that the 2.0 series will still support downstream projects built against earlier versions of NumPy. The Python versions supported in this release are 3.9-3.11. #### Deprecations - `np.core.MachAr` is deprecated. It is private API. In names defined in `np.core` should generally be considered private. ([gh-22638](https://togithub.com/numpy/numpy/pull/22638)) - `np.finfo(None)` is deprecated. ([gh-23011](https://togithub.com/numpy/numpy/pull/23011)) - `np.round_` is deprecated. Use `np.round` instead. ([gh-23302](https://togithub.com/numpy/numpy/pull/23302)) - `np.product` is deprecated. Use `np.prod` instead. ([gh-23314](https://togithub.com/numpy/numpy/pull/23314)) - `np.cumproduct` is deprecated. Use `np.cumprod` instead. ([gh-23314](https://togithub.com/numpy/numpy/pull/23314)) - `np.sometrue` is deprecated. Use `np.any` instead. ([gh-23314](https://togithub.com/numpy/numpy/pull/23314)) - `np.alltrue` is deprecated. Use `np.all` instead. ([gh-23314](https://togithub.com/numpy/numpy/pull/23314)) - Only ndim-0 arrays are treated as scalars. NumPy used to treat all arrays of size 1 (e.g., `np.array([3.14])`) as scalars. In the future, this will be limited to arrays of ndim 0 (e.g., `np.array(3.14)`). The following expressions will report a deprecation warning: ```python a = np.array([3.14]) float(a) # better: a[0] to get the numpy.float or a.item() b = np.array([[3.14]]) c = numpy.random.rand(10) c[0] = b # better: c[0] = b[0, 0] ``` ([gh-10615](https://togithub.com/numpy/numpy/pull/10615)) - `numpy.find_common_type` is now deprecated and its use should be replaced with either `numpy.result_type` or `numpy.promote_types`. Most users leave the second `scalar_types` argument to `find_common_type` as `[]` in which case `np.result_type` and `np.promote_types` are both faster and more robust. When not using `scalar_types` the main difference is that the replacement intentionally converts non-native byte-order to native byte order. Further, `find_common_type` returns `object` dtype rather than failing promotion. This leads to differences when the inputs are not all numeric. Importantly, this also happens for e.g. timedelta/datetime for which NumPy promotion rules are currently sometimes surprising. When the `scalar_types` argument is not `[]` things are more complicated. In most cases, using `np.result_type` and passing the Python values `0`, `0.0`, or `0j` has the same result as using `int`, `float`, or `complex` in `scalar_types`. When `scalar_types` is constructed, `np.result_type` is the correct replacement and it may be passed scalar values like `np.float32(0.0)`. Passing values other than 0, may lead to value-inspecting behavior (which `np.find_common_type` never used and NEP 50 may change in the future). The main possible change in behavior in this case, is when the array types are signed integers and scalar types are unsigned. If you are unsure about how to replace a use of `scalar_types` or when non-numeric dtypes are likely, please do not hesitate to open a NumPy issue to ask for help. ([gh-22539](https://togithub.com/numpy/numpy/pull/22539)) #### Expired deprecations - `np.core.machar` and `np.finfo.machar` have been removed. ([gh-22638](https://togithub.com/numpy/numpy/pull/22638)) - `+arr` will now raise an error when the dtype is not numeric (and positive is undefined). ([gh-22998](https://togithub.com/numpy/numpy/pull/22998)) - A sequence must now be passed into the stacking family of functions (`stack`, `vstack`, `hstack`, `dstack` and `column_stack`). ([gh-23019](https://togithub.com/numpy/numpy/pull/23019)) - `np.clip` now defaults to same-kind casting. Falling back to unsafe casting was deprecated in NumPy 1.17. ([gh-23403](https://togithub.com/numpy/numpy/pull/23403)) - `np.clip` will now propagate `np.nan` values passed as `min` or `max`. Previously, a scalar NaN was usually ignored. This was deprecated in NumPy 1.17. ([gh-23403](https://togithub.com/numpy/numpy/pull/23403)) - The `np.dual` submodule has been removed. ([gh-23480](https://togithub.com/numpy/numpy/pull/23480)) - NumPy now always ignores sequence behavior for an array-like (defining one of the array protocols). (Deprecation started NumPy 1.20) ([gh-23660](https://togithub.com/numpy/numpy/pull/23660)) - The niche `FutureWarning` when casting to a subarray dtype in `astype` or the array creation functions such as `asarray` is now finalized. The behavior is now always the same as if the subarray dtype was wrapped into a single field (which was the workaround, previously). (FutureWarning since NumPy 1.20) ([gh-23666](https://togithub.com/numpy/numpy/pull/23666)) - `==` and `!=` warnings have been finalized. The `==` and `!=` operators on arrays now always: - raise errors that occur during comparisons such as when the arrays have incompatible shapes (`np.array([1, 2]) == np.array([1, 2, 3])`). - return an array of all `True` or all `False` when values are fundamentally not comparable (e.g. have different dtypes). An example is `np.array(["a"]) == np.array([1])`. This mimics the Python behavior of returning `False` and `True` when comparing incompatible types like `"a" == 1` and `"a" != 1`. For a long time these gave `DeprecationWarning` or `FutureWarning`. ([gh-22707](https://togithub.com/numpy/numpy/pull/22707)) - Nose support has been removed. NumPy switched to using pytest in 2018 and nose has been unmaintained for many years. We have kept NumPy's nose support to avoid breaking downstream projects who might have been using it and not yet switched to pytest or some other testing framework. With the arrival of Python 3.12, unpatched nose will raise an error. It is time to move on. *Decorators removed*: - raises - slow - setastest - skipif - knownfailif - deprecated - parametrize - \_needs_refcount These are not to be confused with pytest versions with similar names, e.g., pytest.mark.slow, pytest.mark.skipif, pytest.mark.parametrize. *Functions removed*: - Tester - import_nose - run_module_suite ([gh-23041](https://togithub.com/numpy/numpy/pull/23041)) - The `numpy.testing.utils` shim has been removed. Importing from the `numpy.testing.utils` shim has been deprecated since 2019, the shim has now been removed. All imports should be made directly from `numpy.testing`. ([gh-23060](https://togithub.com/numpy/numpy/pull/23060)) - The environment variable to disable dispatching has been removed. Support for the `NUMPY_EXPERIMENTAL_ARRAY_FUNCTION` environment variable has been removed. This variable disabled dispatching with `__array_function__`. ([gh-23376](https://togithub.com/numpy/numpy/pull/23376)) - Support for `y=` as an alias of `out=` has been removed. The `fix`, `isposinf` and `isneginf` functions allowed using `y=` as a (deprecated) alias for `out=`. This is no longer supported. ([gh-23376](https://togithub.com/numpy/numpy/pull/23376)) #### Compatibility notes - The `busday_count` method now correctly handles cases where the `begindates` is later in time than the `enddates`. Previously, the `enddates` was included, even though the documentation states it is always excluded. ([gh-23229](https://togithub.com/numpy/numpy/pull/23229)) - When comparing datetimes and timedelta using `np.equal` or `np.not_equal` numpy previously allowed the comparison with `casting="unsafe"`. This operation now fails. Forcing the output dtype using the `dtype` kwarg can make the operation succeed, but we do not recommend it. ([gh-22707](https://togithub.com/numpy/numpy/pull/22707)) - When loading data from a file handle using `np.load`, if the handle is at the end of file, as can happen when reading multiple arrays by calling `np.load` repeatedly, numpy previously raised `ValueError` if `allow_pickle=False`, and `OSError` if `allow_pickle=True`. Now it raises `EOFError` instead, in both cases. ([gh-23105](https://togithub.com/numpy/numpy/pull/23105)) ##### `np.pad` with `mode=wrap` pads with strict multiples of original data Code based on earlier version of `pad` that uses `mode="wrap"` will return different results when the padding size is larger than initial array. `np.pad` with `mode=wrap` now always fills the space with strict multiples of original data even if the padding size is larger than the initial array. ([gh-22575](https://togithub.com/numpy/numpy/pull/22575)) ##### Cython `long_t` and `ulong_t` removed `long_t` and `ulong_t` were aliases for `longlong_t` and `ulonglong_t` and confusing (a remainder from of Python 2). This change may lead to the errors: 'long_t' is not a type identifier 'ulong_t' is not a type identifier We recommend use of bit-sized types such as `cnp.int64_t` or the use of `cnp.intp_t` which is 32 bits on 32 bit systems and 64 bits on 64 bit systems (this is most compatible with indexing). If C `long` is desired, use plain `long` or `npy_long`. `cnp.int_t` is also `long` (NumPy's default integer). However, `long` is 32 bit on 64 bit windows and we may wish to adjust this even in NumPy. (Please do not hesitate to contact NumPy developers if you are curious about this.) ([gh-22637](https://togithub.com/numpy/numpy/pull/22637)) ##### Changed error message and type for bad `axes` argument to `ufunc` The error message and type when a wrong `axes` value is passed to `ufunc(..., axes=[...])` has changed. The message is now more indicative of the problem, and if the value is mismatched an `AxisError` will be raised. A `TypeError` will still be raised for invalidinput types. ([gh-22675](https://togithub.com/numpy/numpy/pull/22675)) ##### Array-likes that define `__array_ufunc__` can now override ufuncs if used as `where` If the `where` keyword argument of a `numpy.ufunc`{.interpreted-text role="class"} is a subclass of `numpy.ndarray`{.interpreted-text role="class"} or is a duck type that defines `numpy.class.__array_ufunc__`{.interpreted-text role="func"} it can override the behavior of the ufunc using the same mechanism as the input and output arguments. Note that for this to work properly, the `where.__array_ufunc__` implementation will have to unwrap the `where` argument to pass it into the default implementation of the `ufunc` or, for `numpy.ndarray`{.interpreted-text role="class"} subclasses before using `super().__array_ufunc__`. ([gh-23240](https://togithub.com/numpy/numpy/pull/23240)) ##### Compiling against the NumPy C API is now backwards compatible by default NumPy now defaults to exposing a backwards compatible subset of the C-API. This makes the use of `oldest-supported-numpy` unnecessary. Libraries can override the default minimal version to be compatible with using: #define NPY_TARGET_VERSION NPY_1_22_API_VERSION before including NumPy or by passing the equivalent `-D` option to the compiler. The NumPy 1.25 default is `NPY_1_19_API_VERSION`. Because the NumPy 1.19 C API was identical to the NumPy 1.16 one resulting programs will be compatible with NumPy 1.16 (from a C-API perspective). This default will be increased in future non-bugfix releases. You can still compile against an older NumPy version and run on a newer one. For more details please see `for-downstream-package-authors`{.interpreted-text role="ref"}. ([gh-23528](https://togithub.com/numpy/numpy/pull/23528)) #### New Features ##### `np.einsum` now accepts arrays with `object` dtype The code path will call python operators on object dtype arrays, much like `np.dot` and `np.matmul`. ([gh-18053](https://togithub.com/numpy/numpy/pull/18053)) ##### Add support for inplace matrix multiplication It is now possible to perform inplace matrix multiplication via the `@=` operator. ```python >>> import numpy as np >>> a = np.arange(6).reshape(3, 2) >>> print(a) [[0 1] [2 3] [4 5]] >>> b = np.ones((2, 2), dtype=int) >>> a @= b >>> print(a) [[1 1] [5 5] [9 9]] ``` ([gh-21120](https://togithub.com/numpy/numpy/pull/21120)) ##### Added `NPY_ENABLE_CPU_FEATURES` environment variable Users may now choose to enable only a subset of the built CPU features at runtime by specifying the `NPY_ENABLE_CPU_FEATURES` environment variable. Note that these specified features must be outside the baseline, since those are always assumed. Errors will be raised if attempting to enable a feature that is either not supported by your CPU, or that NumPy was not built with. ([gh-22137](https://togithub.com/numpy/numpy/pull/22137)) ##### NumPy now has an `np.exceptions` namespace NumPy now has a dedicated namespace making most exceptions and warnings available. All of these remain available in the main namespace, although some may be moved slowly in the future. The main reason for this is to increase discoverability and add future exceptions. ([gh-22644](https://togithub.com/numpy/numpy/pull/22644)) ##### `np.linalg` functions return NamedTuples `np.linalg` functions that return tuples now return namedtuples. These functions are `eig()`, `eigh()`, `qr()`, `slogdet()`, and `svd()`. The return type is unchanged in instances where these functions return non-tuples with certain keyword arguments (like `svd(compute_uv=False)`). ([gh-22786](https://togithub.com/numpy/numpy/pull/22786)) ##### String functions in `np.char` are compatible with NEP 42 custom dtypes Custom dtypes that represent unicode strings or byte strings can now be passed to the string functions in `np.char`. ([gh-22863](https://togithub.com/numpy/numpy/pull/22863)) ##### String dtype instances can be created from the string abstract dtype classes It is now possible to create a string dtype instance with a size without using the string name of the dtype. For example, `type(np.dtype('U'))(8)` will create a dtype that is equivalent to `np.dtype('U8')`. This feature is most useful when writing generic code dealing with string dtype classes. ([gh-22963](https://togithub.com/numpy/numpy/pull/22963)) ##### Fujitsu C/C++ compiler is now supported Support for Fujitsu compiler has been added. To build with Fujitsu compiler, run: > python setup.py build -c fujitsu ##### SSL2 is now supported Support for SSL2 has been added. SSL2 is a library that provides OpenBLAS compatible GEMM functions. To enable SSL2, it need to edit site.cfg and build with Fujitsu compiler. See site.cfg.example. ([gh-22982](https://togithub.com/numpy/numpy/pull/22982)) #### Improvements ##### `NDArrayOperatorsMixin` specifies that it has no `__slots__` The `NDArrayOperatorsMixin` class now specifies that it contains no `__slots__`, ensuring that subclasses can now make use of this feature in Python. ([gh-23113](https://togithub.com/numpy/numpy/pull/23113)) ##### Fix power of complex zero `np.power` now returns a different result for `0^{non-zero}` for complex numbers. Note that the value is only defined when the real part of the exponent is larger than zero. Previously, NaN was returned unless the imaginary part was strictly zero. The return value is either `0+0j` or `0-0j`. ([gh-18535](https://togithub.com/numpy/numpy/pull/18535)) ##### New `DTypePromotionError` NumPy now has a new `DTypePromotionError` which is used when two dtypes cannot be promoted to a common one, for example: np.result_type("M8[s]", np.complex128) raises this new exception. ([gh-22707](https://togithub.com/numpy/numpy/pull/22707)) ##### `np.show_config` uses information from Meson Build and system information now contains information from Meson. `np.show_config` now has a new optional parameter `mode` to help customize the output. ([gh-22769](https://togithub.com/numpy/numpy/pull/22769)) ##### Fix `np.ma.diff` not preserving the mask when called with arguments prepend/append. Calling `np.ma.diff` with arguments prepend and/or append now returns a `MaskedArray` with the input mask preserved. Previously, a `MaskedArray` without the mask was returned. ([gh-22776](https://togithub.com/numpy/numpy/pull/22776)) ##### Corrected error handling for NumPy C-API in Cython Many NumPy C functions defined for use in Cython were lacking the correct error indicator like `except -1` or `except *`. These have now been added. ([gh-22997](https://togithub.com/numpy/numpy/pull/22997)) ##### Ability to directly spawn random number generators `numpy.random.Generator.spawn` now allows to directly spawn new independent child generators via the `numpy.random.SeedSequence.spawn` mechanism. `numpy.random.BitGenerator.spawn` does the same for the underlying bit generator. Additionally, `numpy.random.BitGenerator.seed_seq` now gives direct access to the seed sequence used for initializing the bit generator. This allows for example: seed = 0x2e09b90939db40c400f8f22dae617151 rng = np.random.default_rng(seed) child_rng1, child_rng2 = rng.spawn(2) ### safely use rng, child_rng1, and child_rng2 Previously, this was hard to do without passing the `SeedSequence` explicitly. Please see `numpy.random.SeedSequence` for more information. ([gh-23195](https://togithub.com/numpy/numpy/pull/23195)) ##### `numpy.logspace` now supports a non-scalar `base` argument The `base` argument of `numpy.logspace` can now be array-like if it is broadcastable against the `start` and `stop` arguments. ([gh-23275](https://togithub.com/numpy/numpy/pull/23275)) ##### `np.ma.dot()` now supports for non-2d arrays Previously `np.ma.dot()` only worked if `a` and `b` were both 2d. Now it works for non-2d arrays as well as `np.dot()`. ([gh-23322](https://togithub.com/numpy/numpy/pull/23322)) ##### Explicitly show keys of .npz file in repr `NpzFile` shows keys of loaded .npz file when printed. ```python >>> npzfile = np.load('arr.npz') >>> npzfile NpzFile 'arr.npz' with keys arr_0, arr_1, arr_2, arr_3, arr_4... ``` ([gh-23357](https://togithub.com/numpy/numpy/pull/23357)) ##### NumPy now exposes DType classes in `np.dtypes` The new `numpy.dtypes` module now exposes DType classes and will contain future dtype related functionality. Most users should have no need to use these classes directly. ([gh-23358](https://togithub.com/numpy/numpy/pull/23358)) ##### Drop dtype metadata before saving in .npy or .npz files Currently, a `*.npy` file containing a table with a dtype with metadata cannot be read back. Now, `np.save` and `np.savez` drop metadata before saving. ([gh-23371](https://togithub.com/numpy/numpy/pull/23371)) ##### `numpy.lib.recfunctions.structured_to_unstructured` returns views in more cases `structured_to_unstructured` now returns a view, if the stride between the fields is constant. Prior, padding between the fields or a reversed field would lead to a copy. This change only applies to `ndarray`, `memmap` and `recarray`. For all other array subclasses, the behavior remains unchanged. ([gh-23652](https://togithub.com/numpy/numpy/pull/23652)) ##### Signed and unsigned integers always compare correctly When `uint64` and `int64` are mixed in NumPy, NumPy typically promotes both to `float64`. This behavior may be argued about but is confusing for comparisons `==`, `<=`, since the results returned can be incorrect but the conversion is hidden since the result is a boolean. NumPy will now return the correct results for these by avoiding the cast to float. ([gh-23713](https://togithub.com/numpy/numpy/pull/23713)) #### Performance improvements and changes ##### Faster `np.argsort` on AVX-512 enabled processors 32-bit and 64-bit quicksort algorithm for np.argsort gain up to 6x speed up on processors that support AVX-512 instruction set. Thanks to [Intel corporation](https://open.intel.com/) for sponsoring this work. ([gh-23707](https://togithub.com/numpy/numpy/pull/23707)) ##### Faster `np.sort` on AVX-512 enabled processors Quicksort for 16-bit and 64-bit dtypes gain up to 15x and 9x speed up on processors that support AVX-512 instruction set. Thanks to [Intel corporation](https://open.intel.com/) for sponsoring this work. ([gh-22315](https://togithub.com/numpy/numpy/pull/22315)) ##### `__array_function__` machinery is now much faster The overhead of the majority of functions in NumPy is now smaller especially when keyword arguments are used. This change significantly speeds up many simple function calls. ([gh-23020](https://togithub.com/numpy/numpy/pull/23020)) ##### `ufunc.at` can be much faster Generic `ufunc.at` can be up to 9x faster. The conditions for this speedup: - operands are aligned - no casting If ufuncs with appropriate indexed loops on 1d arguments with the above conditions, `ufunc.at` can be up to 60x faster (an additional 7x speedup). Appropriate indexed loops have been added to `add`, `subtract`, `multiply`, `floor_divide`, `maximum`, `minimum`, `fmax`, and `fmin`. The internal logic is similar to the logic used for regular ufuncs, which also have fast paths. Thanks to the [D. E. Shaw group](https://deshaw.com/) for sponsoring this work. ([gh-23136](https://togithub.com/numpy/numpy/pull/23136)) ##### Faster membership test on `NpzFile` Membership test on `NpzFile` will no longer decompress the archive if it is successful. ([gh-23661](https://togithub.com/numpy/numpy/pull/23661)) #### Changes ##### `np.r_[]` and `np.c_[]` with certain scalar values In rare cases, using mainly `np.r_` with scalars can lead to different results. The main potential changes are highlighted by the following: >>> np.r_[np.arange(5, dtype=np.uint8), -1].dtype int16 # rather than the default integer (int64 or int32) >>> np.r_[np.arange(5, dtype=np.int8), 255] array([ 0, 1, 2, 3, 4, 255], dtype=int16) Where the second example returned: array([ 0, 1, 2, 3, 4, -1], dtype=int8) The first one is due to a signed integer scalar with an unsigned integer array, while the second is due to `255` not fitting into `int8` and NumPy currently inspecting values to make this work. (Note that the second example is expected to change in the future due to `NEP 50Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.