# NumPy v2.5.2 — v2.5.2 (Aug 9, 2026) - Product: NumPy (https://whatsnew.fyi/product/numpy) - Vendor: NumPy - Date: 2026-08-09 - Version: v2.5.2 - Original notes: https://github.com/numpy/numpy/releases/tag/v2.5.2 - Permalink: https://whatsnew.fyi/product/numpy/releases/v2.5.2 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Wheels for Python 3.15.0rc1 are now included - **changed** — PyArray_StringDTypeObject is now opaque under the abi3t stable ABI, preventing access to struct fields in free-threading-compatible builds - **fixed** — Fix StringDType coerce flag in binary ufunc promotion - **fixed** — Fix crash on 32 bit systems using abi3t - **fixed** — Fix CPU feature env diagnostic buffer overruns - **fixed** — Restore ndarray.conjugate() for legacy user-defined dtypes - **fixed** — Fix refcount leak on overlapping copyto with where=False - **fixed** — Fix swallowed cast error in fancy indexing assignment - **fixed** — Fix buffered iterator stride after removing multi-index - **fixed** — Fix np.fromiter corruption when reusing a StringDType - **fixed** — Add a special case for StringDType in np.isdtype - **fixed** — Fix reference leak in simd_sequence_from_iterable - **fixed** — Ensure lock is held when accessing or writing to RNG state - **fixed** — Fully reset cached RNG state for non-MT19937 RNGs - **fixed** — Avoid possible stack overflow in arraydescr_dealloc - **fixed** — Avoid segfaults when legacy copyswap slot is not defined #### NumPy 2.5.2 Release Notes The NumPy 2.5.2 is a patch release that fixes bugs discovered after the 2.5.1 release. The big news is that it includes wheels for the newly released Python 3.15.0rc1. This release supports Python versions 3.12-3.15 ##### C API changes ###### `PyArray_StringDTypeObject` is opaque under the abi3t stable ABI The `PyArray_StringDTypeObject` was accidentally exposed in NumPy 2.5 when targeting the free-threading-compatible stable ABI (`Py_TARGET_ABI3T`). `PyArray_StringDTypeObject` is now an opaque struct: extensions compiled that way cannot access its fields, since the struct layout depends on the size of the object header. Any code that accessed `PyArray_StringDTypeObject` fields in an abi3t build would have crashed, so we are making this API change in a bugfix release. The `NpyString` allocator API remains usable by passing the descriptor object pointer, e.g. `NpyString_acquire_allocator((PyArray_StringDTypeObject *)descr)`. ([gh-31771](https://github.com/numpy/numpy/pull/31771)) ##### Contributors A total of 16 people contributed to this release. People with a \"+\" by their names contributed a patch for the first time. - Abhijeetsingh Meena + - Charalampos Stratakis - Charles Harris - Chris Ninham + - David Woods - Geonho + - Gopu Yeshwanth Reddy + - Iason Krommydas - Ijtihed Kilani - Jelle Zijlstra + - Joren Hammudoglu - Kumar Aditya - Mike Boyle - Nathan Goldbaum - Raghuveer Devulapalli - Sebastian Berg ##### Pull requests merged A total of 28 pull requests were merged for this release. - [#31864](https://github.com/numpy/numpy/pull/31864): MAINT: Prepare 2.5.x for further development - [#31889](https://github.com/numpy/numpy/pull/31889): TYP: Backport multiple static typing fixes 1. - [#31900](https://github.com/numpy/numpy/pull/31900): TST: add tests for stable ABI numpy extensions (#31822) - [#31901](https://github.com/numpy/numpy/pull/31901): BUG: fix `StringDType` coerce flag in binary ufunc promotion\... - [#31902](https://github.com/numpy/numpy/pull/31902): BLD: fix meson deprecation warnings (#31892) - [#31921](https://github.com/numpy/numpy/pull/31921): TYP: Backport multiple typing fixes 2. - [#31947](https://github.com/numpy/numpy/pull/31947): MAINT: Update x86-simd-sort subproject (5adb334 → fa944ef) (#31908) - [#31949](https://github.com/numpy/numpy/pull/31949): BUG: fix crash on 32 bit systems using abi3t (#31771) - [#31950](https://github.com/numpy/numpy/pull/31950): MNT: remove some obsolete string to bool workarounds (#31859) - [#31952](https://github.com/numpy/numpy/pull/31952): BUG: centralized helper for output coerce and na_object in stringdtype\... - [#31953](https://github.com/numpy/numpy/pull/31953): BUG: fix CPU feature env diagnostic buffer overruns (#31905) - [#31954](https://github.com/numpy/numpy/pull/31954): BUG: restore ndarray.conjugate() for legacy user-defined dtypes\... - [#31955](https://github.com/numpy/numpy/pull/31955): TYP: Avoid shadowed dtype annotations - [#32077](https://github.com/numpy/numpy/pull/32077): MAINT: Update verdored-meson/meson to match main. - [#32114](https://github.com/numpy/numpy/pull/32114): BUG: fix refcount leak on overlapping copyto with where=False - [#32115](https://github.com/numpy/numpy/pull/32115): BUG: fix swallowed cast error in fancy indexing assignment (#31975) - [#32116](https://github.com/numpy/numpy/pull/32116): BUG: Fix buffered iterator stride after removing multi-index - [#32117](https://github.com/numpy/numpy/pull/32117): BUG: fix `np.fromiter` corruption when reusing a `StringDType`\... - [#32119](https://github.com/numpy/numpy/pull/32119): BUG: add a special case for StringDType in np.isdtype (#32030) - [#32121](https://github.com/numpy/numpy/pull/32121): BUG: reference leak in `simd_sequence_from_iterable` (#32038) - [#32122](https://github.com/numpy/numpy/pull/32122): BUG: ensure lock is held when accessing or writing to RNG _[Truncated at 4000 characters — full notes: https://github.com/numpy/numpy/releases/tag/v2.5.2]_