Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

This PR updates numpy from 1.16.4 to 2.4.0.

Changelog

2.4.0

The NumPy 2.4.0 release continues the work to improve free threaded Python
support, user dtypes implementation, and annotations. There are many expired
deprecations and bug fixes as well.

This release supports Python versions 3.11-3.14

Highlights

Apart from annotations and `same_value` kwarg, the 2.4 highlights are mostly
of interest to downstream developers. They should help in implementing new user
dtypes.

- Many annotation improvements. In particular, runtime signature introspection.
- New `casting` kwarg `'same_value'` for casting by value.
- New `PyUFunc_AddLoopsFromSpec` function that can be used to add user sort
loops using the `ArrayMethod` API.
- New `__numpy_dtype__` protocol.

Deprecations

Setting the `strides` attribute is deprecated

Setting the strides attribute is now deprecated since mutating
an array is unsafe if an array is shared, especially by multiple
threads. As an alternative, you can create a new view (no copy) via:

- `np.lib.stride_tricks.strided_window_view` if applicable,
- `np.lib.stride_tricks.as_strided` for the general case,
- or the `np.ndarray` constructor (`buffer` is the original array) for a
light-weight version.

([gh-28925](https://github.com/numpy/numpy/pull/28925))

Positional `out` argument to `np.maximum`, `np.minimum` is deprecated

Passing the output array `out` positionally to `numpy.maximum` and
`numpy.minimum` is deprecated. For example, `np.maximum(a, b, c)` will emit
a deprecation warning, since `c` is treated as the output buffer rather than
a third input.

Always pass the output with the keyword form, e.g. `np.maximum(a, b, out=c)`.
This makes intent clear and simplifies type annotations.

([gh-29052](https://github.com/numpy/numpy/pull/29052))

`align=` must be passed as boolean to `np.dtype()`

When creating a new `dtype` a `VisibleDeprecationWarning` will be given if
`align=` is not a boolean. This is mainly to prevent accidentally passing a
subarray align flag where it has no effect, such as `np.dtype("f8", 3)`
instead of `np.dtype(("f8", 3))`. We strongly suggest to always pass
`align=` as a keyword argument.

([gh-29301](https://github.com/numpy/numpy/pull/29301))

Assertion and warning control utilities are deprecated

`np.testing.assert_warns` and `np.testing.suppress_warnings` are
deprecated. Use `warnings.catch_warnings`, `warnings.filterwarnings`,
`pytest.warns`, or `pytest.filterwarnings` instead.

([gh-29550](https://github.com/numpy/numpy/pull/29550))

`np.fix` is pending deprecation

The `numpy.fix` function will be deprecated in a future release. It is
recommended to use `numpy.trunc` instead, as it provides the same
functionality of truncating decimal values to their integer parts. Static type
checkers might already report a warning for the use of `numpy.fix`.

([gh-30168](https://github.com/numpy/numpy/pull/30168))

in-place modification of `ndarray.shape` is pending deprecation

Setting the `ndarray.shape` attribute directly will be deprecated in a future
release. Instead of modifying the shape in place, it is recommended to use the
`numpy.reshape` function. Static type checkers might already report a
warning for assignments to `ndarray.shape`.

([gh-30282](https://github.com/numpy/numpy/pull/30282))

Deprecation of `numpy.lib.user_array.container`

The `numpy.lib.user_array.container` class is deprecated and will be removed
in a future version.

([gh-30284](https://github.com/numpy/numpy/pull/30284))

Expired deprecations

Removed deprecated `MachAr` runtime discovery mechanism.

([gh-29836](https://github.com/numpy/numpy/pull/29836))

Raise `TypeError` on attempt to convert array with `ndim > 0` to scalar

Conversion of an array with `ndim > 0` to a scalar was deprecated in NumPy
1.25. Now, attempting to do so raises `TypeError`. Ensure you extract a
single element from your array before performing this operation.

([gh-29841](https://github.com/numpy/numpy/pull/29841))

Removed numpy.linalg.linalg and numpy.fft.helper

The following were deprecated in NumPy 2.0 and have been moved to private
modules:

- `numpy.linalg.linalg`
Use `numpy.linalg` instead.
- `numpy.fft.helper`
Use `numpy.fft` instead.

([gh-29909](https://github.com/numpy/numpy/pull/29909))

Removed `interpolation` parameter from quantile and percentile functions

The `interpolation` parameter was deprecated in NumPy 1.22.0 and has been
removed from the following functions:

- `numpy.percentile`
- `numpy.nanpercentile`
- `numpy.quantile`
- `numpy.nanquantile`

Use the `method` parameter instead.

([gh-29973](https://github.com/numpy/numpy/pull/29973))

Removed `numpy.in1d`

`numpy.in1d` has been deprecated since NumPy 2.0 and is now removed in favor of `numpy.isin`.

([gh-29978](https://github.com/numpy/numpy/pull/29978))

Removed `numpy.ndindex.ndincr()`

The `ndindex.ndincr()` method has been deprecated since NumPy 1.20 and is now
removed; use `next(ndindex)` instead.

([gh-29980](https://github.com/numpy/numpy/pull/29980))

Removed `fix_imports` parameter from `numpy.save`

The `fix_imports` parameter was deprecated in NumPy 2.1.0 and is now removed.
This flag has been ignored since NumPy 1.17 and was only needed to support
loading files in Python 2 that were written in Python 3.

([gh-29984](https://github.com/numpy/numpy/pull/29984))

Removal of four undocumented `ndarray.ctypes` methods

Four undocumented methods of the `ndarray.ctypes` object have been removed:

- `_ctypes.get_data()` (use `_ctypes.data` instead)
- `_ctypes.get_shape()` (use `_ctypes.shape` instead)
- `_ctypes.get_strides()` (use `_ctypes.strides` instead)
- `_ctypes.get_as_parameter()` (use `_ctypes._as_parameter_` instead)

These methods have been deprecated since NumPy 1.21.

([gh-29986](https://github.com/numpy/numpy/pull/29986))

Removed `newshape` parameter from `numpy.reshape`

The `newshape` parameter was deprecated in NumPy 2.1.0 and has been
removed from `numpy.reshape`. Pass it positionally or use `shape=`
on newer NumPy versions.

([gh-29994](https://github.com/numpy/numpy/pull/29994))

Removal of deprecated functions and arguments

The following long-deprecated APIs have been removed:

- `numpy.trapz` --- deprecated since NumPy 2.0 (2023-08-18). Use `numpy.trapezoid` or
`scipy.integrate` functions instead.
- `disp` function --- deprecated from 2.0 release and no longer functional. Use
your own printing function instead.
- `bias` and `ddof` arguments in `numpy.corrcoef` --- these had no effect
since NumPy 1.10.

([gh-29997](https://github.com/numpy/numpy/pull/29997))

Removed `delimitor` parameter from `numpy.ma.mrecords.fromtextfile()`

The `delimitor` parameter was deprecated in NumPy 1.22.0 and has been
removed from `numpy.ma.mrecords.fromtextfile()`. Use `delimiter` instead.

([gh-30021](https://github.com/numpy/numpy/pull/30021))

`numpy.array2string` and `numpy.sum` deprecations finalized

The following long-deprecated APIs have been removed or converted to errors:

- The `style` parameter has been removed from `numpy.array2string`.
This argument had no effect since Numpy 1.14.0. Any arguments following
it, such as `formatter` have now been made keyword-only.
- Calling `np.sum(generator)` directly on a generator object now raises a
`TypeError`. This behavior was deprecated in NumPy 1.15.0. Use
`np.sum(np.fromiter(generator))` or the python `sum` builtin instead.

([gh-30068](https://github.com/numpy/numpy/pull/30068))

Compatibility notes

- NumPy\'s C extension modules have begun to use multi-phase initialisation, as
defined by PEP 489. As part of this, a new explicit check has been added that
each such module is only imported once per Python process. This comes with
the side-effect that deleting `numpy` from `sys.modules` and re-importing
it will now fail with an `ImportError`. This has always been unsafe, with
unexpected side-effects, though did not previously raise an error.

([gh-29030](https://github.com/numpy/numpy/pull/29030))

- `numpy.round` now always returns a copy. Previously, it returned a view
for integer inputs for `decimals >= 0` and a copy in all other cases.
This change brings `round` in line with `ceil`, `floor` and `trunc`.

([gh-29137](https://github.com/numpy/numpy/pull/29137))

- Type-checkers will no longer accept calls to `numpy.arange` with
`start` as a keyword argument. This was done for compatibility with
the Array API standard. At runtime it is still possible to use
`numpy.arange` with `start` as a keyword argument.

([gh-30147](https://github.com/numpy/numpy/pull/30147))

- The Macro NPY_ALIGNMENT_REQUIRED has been removed The macro was defined in
the `npy_cpu.h` file, so might be regarded as semi public. As it turns out,
with modern compilers and hardware it is almost always the case that
alignment is required, so numpy no longer uses the macro. It is unlikely
anyone uses it, but you might want to compile with the `-Wundef` flag or
equivalent to be sure.

([gh-29094](https://github.com/numpy/numpy/pull/29094))

C API changes

The NPY_SORTKIND enum has been enhanced with new variables

This is of interest if you are using `PyArray_Sort` or `PyArray_ArgSort`.
We have changed the semantics of the old names in the `NPY_SORTKIND` enum and
added new ones. The changes are backward compatible, and no recompilation is
needed. The new names of interest are:

- `NPY_SORT_DEFAULT` \-- default sort (same value as `NPY_QUICKSORT`)
- `NPY_SORT_STABLE` \-- the sort must be stable (same value as `NPY_MERGESORT`)
- `NPY_SORT_DESCENDING` \-- the sort must be descending

The semantic change is that `NPY_HEAPSORT` is mapped to `NPY_QUICKSORT` when used.
Note that `NPY_SORT_DESCENDING` is not yet implemented.

([gh-29642](https://github.com/numpy/numpy/pull/29642))

New `NPY_DT_get_constant` slot for DType constant retrieval

A new slot `NPY_DT_get_constant` has been added to the DType API, allowing
dtype implementations to provide constant values such as machine limits and
special values. The slot function has the signature:

 int get_constant(PyArray_Descr *descr, int constant_id, void *ptr)

It returns 1 on success, 0 if the constant is not available, or -1 on error.
The function is always called with the GIL held and may write to unaligned memory.

Integer constants (marked with the `1 << 16` bit) return `npy_intp` values,
while floating-point constants return values of the dtype\'s native type.

Implementing this can be used by user DTypes to provide `numpy.finfo` values.

([gh-29836](https://github.com/numpy/numpy/pull/29836))

A new `PyUFunc_AddLoopsFromSpecs` convenience function has been added to the C API.

This function allows adding multiple ufunc loops from their specs in one call
using a NULL-terminated array of `PyUFunc_LoopSlot` structs. It allows
registering sorting and argsorting loops using the new ArrayMethod API.

([gh-29900](https://github.com/numpy/numpy/pull/29900))

New Features

- Let `np.size` accept multiple axes.

([gh-29240](https://github.com/numpy/numpy/pull/29240))

- Extend `numpy.pad` to accept a dictionary for the `pad_width` argument.

([gh-29273](https://github.com/numpy/numpy/pull/29273))

`'same_value'` for casting by value

The `casting` kwarg now has a `'same_value'` option that checks the actual
values can be round-trip cast without changing value. Currently it is only
implemented in `ndarray.astype`. This will raise a `ValueError` if any of the
values in the array would change as a result of the cast, including rounding of
floats or overflowing of ints.

([gh-29129](https://github.com/numpy/numpy/pull/29129))

`StringDType` fill_value support in `numpy.ma.MaskedArray`

Masked arrays now accept and preserve a Python `str` as their `fill_value`
when using the variable‑width `StringDType` (kind `'T'`), including through
slicing and views. The default is `'N/A'` and may be overridden by any valid
string. This fixes issue [gh‑29421](https://github.com/numpy/numpy/issues/29421)
and was implemented in pull request [gh‑29423](https://github.com/numpy/numpy/pull/29423).

([gh-29423](https://github.com/numpy/numpy/pull/29423))

`ndmax` option for `numpy.array`

The `ndmax` option is now available for `numpy.array`.
It explicitly limits the maximum number of dimensions created from nested sequences.

This is particularly useful when creating arrays of list-like objects with `dtype=object`.
By default, NumPy recurses through all nesting levels to create the highest possible
dimensional array, but this behavior may not be desired when the intent is to preserve
nested structures as objects. The `ndmax` parameter provides explicit control over
this recursion depth.

python
Default behavior: Creates a 2D array
>>> a = np.array([[1, 2], [3, 4]], dtype=object)
>>> a
array([[1, 2],
    [3, 4]], dtype=object)
>>> a.shape
(2, 2)

With ndmax=1: Creates a 1D array
>>> b = np.array([[1, 2], [3, 4]], dtype=object, ndmax=1)
>>> b
array([list([1, 2]), list([3, 4])], dtype=object)
>>> b.shape
(2,)


([gh-29569](https://github.com/numpy/numpy/pull/29569))

Warning emitted when using `where` without `out`

Ufuncs called with a `where` mask and without an `out` positional or kwarg will
now emit a warning. This usage tends to trip up users who expect some value in
output locations where the mask is `False` (the ufunc will not touch those
locations). The warning can be suppressed by using `out=None`.

([gh-29813](https://github.com/numpy/numpy/pull/29813))

DType sorting and argsorting supports the ArrayMethod API

User-defined dtypes can now implement custom sorting and argsorting using the
`ArrayMethod` API. This mechanism can be used in place of the
`PyArray_ArrFuncs` slots which may be deprecated in the future.

The sorting and argsorting methods are registered by passing the arraymethod
specs that implement the operations to the new `PyUFunc_AddLoopsFromSpecs`
function. See the `ArrayMethod` API documentation for details.

([gh-29900](https://github.com/numpy/numpy/pull/29900))

New `__numpy_dtype__` protocol

NumPy now has a new `__numpy_dtype__` protocol. NumPy will check
for this attribute when converting to a NumPy dtype via `np.dtype(obj)`
or any `dtype=` argument.

Downstream projects are encouraged to implement this for all dtype like
objects which may previously have used a `.dtype` attribute that returned
a NumPy dtype.
We expect to deprecate `.dtype` in the future to prevent interpreting
array-like objects with a `.dtype` attribute as a dtype.
If you wish you can implement `__numpy_dtype__` to ensure an earlier
warning or error (`.dtype` is ignored if this is found).

([gh-30179](https://github.com/numpy/numpy/pull/30179))

Improvements

Fix `flatiter` indexing edge cases

The `flatiter` object now shares the same index preparation logic as
`ndarray`, ensuring consistent behavior and fixing several issues where
invalid indices were previously accepted or misinterpreted.

Key fixes and improvements:

- Stricter index validation

- Boolean non-array indices like `arr.flat[[True, True]]` were
 incorrectly treated as `arr.flat[np.array([1, 1], dtype=int)]`.
 They now raise an index error. Note that indices that match the
 iterator\'s shape are expected to not raise in the future and be
 handled as regular boolean indices. Use `np.asarray(<index>)` if
 you want to match that behavior.
- Float non-array indices were also cast to integer and incorrectly
 treated as `arr.flat[np.array([1.0, 1.0], dtype=int)]`. This is now
 deprecated and will be removed in a future version.
- 0-dimensional boolean indices like `arr.flat[True]` are also
 deprecated and will be removed in a future version.

- Consistent error types:

Certain invalid `flatiter` indices that previously raised `ValueError`
now correctly raise `IndexError`, aligning with `ndarray` behavior.

- Improved error messages:

The error message for unsupported index operations now provides more
specific details, including explicitly listing the valid index types,
instead of the generic `IndexError: unsupported index operation`.

([gh-28590](https://github.com/numpy/numpy/pull/28590))

Improved error handling in `np.quantile`

[np.quantile]{.title-ref} now raises errors if:

- All weights are zero
- At least one weight is `np.nan`
- At least one weight is `np.inf`

([gh-28595](https://github.com/numpy/numpy/pull/28595))

Improved error message for `assert_array_compare`

The error message generated by `assert_array_compare` which is used by functions
like `assert_allclose`, `assert_array_less` etc. now also includes information
about the indices at which the assertion fails.

([gh-29112](https://github.com/numpy/numpy/pull/29112))

Show unit information in `__repr__` for `datetime64("NaT")`

When a `datetime64` object is \"Not a Time\" (NaT), its `__repr__` method now
includes the time unit of the datetime64 type. This makes it consistent with
the behavior of a `timedelta64` object.

([gh-29396](https://github.com/numpy/numpy/pull/29396))

Performance increase for scalar calculations

The speed of calculations on scalars has been improved by about a factor 6 for
ufuncs that take only one input (like `np.sin(scalar)`), reducing the speed
difference from their `math` equivalents from a factor 19 to 3 (the speed
for arrays is left unchanged).

([gh-29819](https://github.com/numpy/numpy/pull/29819))

`numpy.finfo` Refactor

The `numpy.finfo` class has been completely refactored to obtain floating-point
constants directly from C compiler macros rather than deriving them at runtime.
This provides better accuracy, platform compatibility and corrected
several attribute calculations:

- Constants like `eps`, `min`, `max`, `smallest_normal`, and
`smallest_subnormal` now come directly from standard C macros (`FLT_EPSILON`,
`DBL_MIN`, etc.), ensuring platform-correct values.
- The deprecated `MachAr` runtime discovery mechanism has been removed.
- Derived attributes have been corrected to match standard definitions:
`machep` and `negep` now use `int(log2(eps))`; `nexp` accounts for
all exponent patterns; `nmant` excludes the implicit bit; and `minexp`
follows the C standard definition.
- longdouble constants, Specifically `smallest_normal` now follows the
C standard definitions as per respecitive platform.
- Special handling added for PowerPC\'s IBM double-double format.
- New test suite added in `test_finfo.py` to validate all
`finfo` properties against expected machine arithmetic values for
float16, float32, and float64 types.

([gh-29836](https://github.com/numpy/numpy/pull/29836))

Multiple axes are now supported in `numpy.trim_zeros`

The `axis` argument of `numpy.trim_zeros` now accepts a sequence; for example
`np.trim_zeros(x, axis=(0, 1))` will trim the zeros from a multi-dimensional
array `x` along axes 0 and 1. This fixes issue
[gh‑29945](https://github.com/numpy/numpy/issues/29945) and was implemented
in pull request [gh‑29947](https://github.com/numpy/numpy/pull/29947).

([gh-29947](https://github.com/numpy/numpy/pull/29947))

Runtime signature introspection support has been significantly improved

Many NumPy functions, classes, and methods that previously raised
`ValueError` when passed to `inspect.signature()` now return meaningful
signatures. This improves support for runtime type checking, IDE autocomplete,
documentation generation, and runtime introspection capabilities across the
NumPy API.

Over three hundred classes and functions have been updated in total, including,
but not limited to, core classes such as `ndarray`, `generic`, `dtype`,
`ufunc`, `broadcast`, `nditer`, etc., most methods of `ndarray` and
scalar types, array constructor functions (`array`, `empty`, `arange`,
`fromiter`, etc.), all `ufuncs`, and many other commonly used functions,
including `dot`, `concat`, `where`, `bincount`, `can_cast`, and
numerous others.

([gh-30208](https://github.com/numpy/numpy/pull/30208))

Performance improvements and changes

Performance improvements to `np.unique` for string dtypes

The hash-based algorithm for unique extraction provides an order-of-magnitude
speedup on large string arrays. In an internal benchmark with about 1 billion
string elements, the hash-based np.unique completed in roughly 33.5 seconds,
compared to 498 seconds with the sort-based method -- about 15× faster for
unsorted unique operations on strings. This improvement greatly reduces the
time to find unique values in very large string datasets.

([gh-28767](https://github.com/numpy/numpy/pull/28767))

Rewrite of `np.ndindex` using `itertools.product`

The `numpy.ndindex` function now uses `itertools.product` internally,
providing significant improvements in performance for large iteration spaces,
while maintaining the original behavior and interface. For example, for an
array of shape (50, 60, 90) the NumPy `ndindex` benchmark improves
performance by a factor 5.2.

([gh-29165](https://github.com/numpy/numpy/pull/29165))

Performance improvements to `np.unique` for complex dtypes

The hash-based algorithm for unique extraction now also supports
complex dtypes, offering noticeable performance gains.

In our benchmarks on complex128 arrays with 200,000 elements,
the hash-based approach was about 1.4--1.5× faster
than the sort-based baseline when there were 20% of unique values,
and about 5× faster when there were 0.2% of unique values.

([gh-29537](https://github.com/numpy/numpy/pull/29537))

Changes

- Multiplication between a string and integer now raises OverflowError instead
of MemoryError if the result of the multiplication would create a string that
is too large to be represented. This follows Python\'s behavior.

([gh-29060](https://github.com/numpy/numpy/pull/29060))

- The accuracy of `np.quantile` and `np.percentile` for 16- and 32-bit
floating point input data has been improved.

([gh-29105](https://github.com/numpy/numpy/pull/29105))

`unique_values` for string dtypes may return unsorted data

np.unique now supports hash‐based duplicate removal for string dtypes.
This enhancement extends the hash-table algorithm to byte strings (\'S\'),
Unicode strings (\'U\'), and the experimental string dtype (\'T\', StringDType).
As a result, calling np.unique() on an array of strings will use
the faster hash-based method to obtain unique values.
Note that this hash-based method does not guarantee that the returned unique values will be sorted.
This also works for StringDType arrays containing None (missing values)
when using equal_nan=True (treating missing values as equal).

([gh-28767](https://github.com/numpy/numpy/pull/28767))

Modulate dispatched x86 CPU features

**IMPORTANT**: The default setting for `cpu-baseline` on x86 has been raised
to `x86-64-v2` microarchitecture. This can be changed to none during build
time to support older CPUs, though SIMD optimizations for pre-2009 processors
are no longer maintained.

NumPy has reorganized x86 CPU features into microarchitecture-based groups
instead of individual features, aligning with Linux distribution standards and
Google Highway requirements.

Key changes:

- Replaced individual x86 features with microarchitecture levels: `X86_V2`,
`X86_V3`, and `X86_V4`
- Raised the baseline to `X86_V2`
- Improved `-` operator behavior to properly exclude successor features that
imply the excluded feature
- Added meson redirections for removed feature names to maintain backward
compatibility
- Removed compiler compatibility workarounds for partial feature support (e.g.,
AVX512 without mask operations)
- Removed legacy AMD features (XOP, FMA4) and discontinued Intel Xeon Phi
support

New Feature Group Hierarchy:

Name           Implies        Includes
-------------- -------------- ------------------------------------------------------------------------------------------------------------------
`X86_V2`                      `SSE` `SSE2` `SSE3` `SSSE3` `SSE4_1` `SSE4_2` `POPCNT` `CX16` `LAHF`
`X86_V3`       `X86_V2`       `AVX` `AVX2` `FMA3` `BMI` `BMI2` `LZCNT` `F16C` `MOVBE`
`X86_V4`       `X86_V3`       `AVX512F` `AVX512CD` `AVX512VL` `AVX512BW` `AVX512DQ`
`AVX512_ICL`   `X86_V4`       `AVX512VBMI` `AVX512VBMI2` `AVX512VNNI` `AVX512BITALG` `AVX512VPOPCNTDQ` `AVX512IFMA` `VAES` `GFNI` `VPCLMULQDQ`
`AVX512_SPR`   `AVX512_ICL`   `AVX512FP16`

These groups correspond to CPU generations:

- `X86_V2`: x86-64-v2 microarchitectures (CPUs since 2009)
- `X86_V3`: x86-64-v3 microarchitectures (CPUs since 2015)
- `X86_V4`: x86-64-v4 microarchitectures (AVX-512 capable CPUs)
- `AVX512_ICL`: Intel Ice Lake and similar CPUs
- `AVX512_SPR`: Intel Sapphire Rapids and newer CPUs

On 32-bit x86, `cx16` is excluded from `X86_V2`.

Documentation has been updated with details on using these new feature groups
with the current meson build system.

([gh-28896](https://github.com/numpy/numpy/pull/28896))

Fix bug in `matmul` for non-contiguous out kwarg parameter

In some cases, if `out` was non-contiguous, `np.matmul` would cause memory
corruption or a c-level assert. This was new to v2.3.0 and fixed in v2.3.1.

([gh-29179](https://github.com/numpy/numpy/pull/29179))

`__array_interface__` with NULL pointer changed

The array interface now accepts NULL pointers (NumPy will do its own dummy
allocation, though). Previously, these incorrectly triggered an undocumented
scalar path. In the unlikely event that the scalar path was actually desired,
you can (for now) achieve the previous behavior via the correct scalar path by
not providing a `data` field at all.

([gh-29338](https://github.com/numpy/numpy/pull/29338))

`unique_values` for complex dtypes may return unsorted data

np.unique now supports hash‐based duplicate removal for complex dtypes. This
enhancement extends the hash‐table algorithm to all complex types (\'c\'), and
their extended precision variants. The hash‐based method provides faster
extraction of unique values but does not guarantee that the result will be
sorted.

([gh-29537](https://github.com/numpy/numpy/pull/29537))

Sorting `kind='heapsort'` now maps to `kind='quicksort'`

It is unlikely that this change will be noticed, but if you do see a change in
execution time or unstable argsort order, that is likely the cause. Please let
us know if there is a performance regression. Congratulate us if it is improved
:)

([gh-29642](https://github.com/numpy/numpy/pull/29642))

`numpy.typing.DTypeLike` no longer accepts `None`

The type alias `numpy.typing.DTypeLike` no longer accepts `None`. Instead of

python
dtype: DTypeLike = None


it should now be

python
dtype: DTypeLike | None = None


instead.

([gh-29739](https://github.com/numpy/numpy/pull/29739))

The `npymath` and `npyrandom` libraries now have a `.lib` rather than a
`.a` file extension on win-arm64, for compatibility for building with MSVC
and `setuptools`. Please note that using these static libraries is
discouraged and for existing projects using it, it\'s best to use it with a
matching compiler toolchain, which is `clang-cl` on Windows on Arm.

([gh-29750](https://github.com/numpy/numpy/pull/29750))

2.3.5

The NumPy 2.3.5 release is a patch release split between a number of maintenance
updates and bug fixes. This release supports Python versions 3.11-3.14.

Contributors

A total of 10 people contributed to this release. People with a \"+\" by their
names contributed a patch for the first time.

- Aaron Kollasch +
- Charles Harris
- Joren Hammudoglu
- Matti Picus
- Nathan Goldbaum
- Rafael Laboissière +
- Sayed Awad
- Sebastian Berg
- Warren Weckesser
- Yasir Ashfaq +

Pull requests merged

A total of 16 pull requests were merged for this release.

- [29979](https://github.com/numpy/numpy/pull/29979): MAINT: Prepare 2.3.x for further development
- [30026](https://github.com/numpy/numpy/pull/30026): SIMD, BLD: Backport FPMATH mode on x86-32 and filter successor\...
- [30029](https://github.com/numpy/numpy/pull/30029): MAINT: Backport write_release.py
- [30041](https://github.com/numpy/numpy/pull/30041): TYP: Various typing updates
- [30059](https://github.com/numpy/numpy/pull/30059): BUG: Fix np.strings.slice if stop=None or start and stop \>= len\...
- [30063](https://github.com/numpy/numpy/pull/30063): BUG: Fix np.strings.slice if start \> stop
- [30076](https://github.com/numpy/numpy/pull/30076): BUG: avoid negating INT_MIN in PyArray_Round implementation (#30071)
- [30090](https://github.com/numpy/numpy/pull/30090): BUG: Fix resize when it contains references (#29970)
- [30129](https://github.com/numpy/numpy/pull/30129): BLD: update scipy-openblas, use -Dpkg_config_path (#30049)
- [30130](https://github.com/numpy/numpy/pull/30130): BUG: Avoid compilation error of wrapper file generated with SWIG\...
- [30157](https://github.com/numpy/numpy/pull/30157): BLD: use scipy-openblas 0.3.30.7 (#30132)
- [30158](https://github.com/numpy/numpy/pull/30158): DOC: Remove nonexistent `order` parameter docs of `ma.asanyarray`\...
- [30185](https://github.com/numpy/numpy/pull/30185): BUG: Fix check of PyMem_Calloc return value. (#30176)
- [30217](https://github.com/numpy/numpy/pull/30217): DOC: fix links for newly rebuilt numpy-tutorials site
- [30218](https://github.com/numpy/numpy/pull/30218): BUG: Fix build on s390x with clang (#30214)
- [30237](https://github.com/numpy/numpy/pull/30237): ENH: Make FPE blas check a runtime check for all apple arm systems

2.3.4

The NumPy 2.3.4 release is a patch release split between a number of maintenance
updates and bug fixes. This release supports Python versions 3.11-3.14. This
release is based on Python 3.14.0 final.

Changes

The `npymath` and `npyrandom` libraries now have a `.lib` rather than a
`.a` file extension on win-arm64, for compatibility for building with MSVC and
`setuptools`. Please note that using these static libraries is discouraged
and for existing projects using it, it\'s best to use it with a matching
compiler toolchain, which is `clang-cl` on Windows on Arm.

([gh-29750](https://github.com/numpy/numpy/pull/29750))

Contributors

A total of 17 people contributed to this release. People with a \"+\" by their
names contributed a patch for the first time.

-   !DWesl
-   Charles Harris
-   Christian Barbia +
-   Evgeni Burovski
-   Joren Hammudoglu
-   Maaz +
-   Mateusz Sokół
-   Matti Picus
-   Nathan Goldbaum
-   Ralf Gommers
-   Riku Sakamoto +
-   Sandeep Gupta +
-   Sayed Awad
-   Sebastian Berg
-   Sergey Fedorov +
-   Warren Weckesser
-   dependabot\[bot\]

Pull requests merged

A total of 30 pull requests were merged for this release.

-   [29725](https://github.com/numpy/numpy/pull/29725): MAINT: Prepare 2.3.x for further development
-   [29781](https://github.com/numpy/numpy/pull/29781): MAINT: Pin some upstream dependences
-   [29782](https://github.com/numpy/numpy/pull/29782): BLD: enable x86-simd-sort to build on KNL with -mavx512f
-   [29783](https://github.com/numpy/numpy/pull/29783): BUG: Include python-including headers first (#29281)
-   [29784](https://github.com/numpy/numpy/pull/29784): TYP: fix np.number and np.\*integer method declaration
-   [29785](https://github.com/numpy/numpy/pull/29785): TYP: mypy 1.18.1
-   [29788](https://github.com/numpy/numpy/pull/29788): TYP: replace scalar type \_\_init\_\_ with \_\_new\_\_
-   [29790](https://github.com/numpy/numpy/pull/29790): BUG: Fix `dtype` refcount in `__array__` (#29715)
-   [29791](https://github.com/numpy/numpy/pull/29791): TYP: fix method declarations in floating, timedelta64, and datetime64Backport
-   [29792](https://github.com/numpy/numpy/pull/29792): MAINT: delete unused variables in unary logical dispatch
-   [29797](https://github.com/numpy/numpy/pull/29797): BUG: Fix pocketfft umath strides for AIX compatibility (#29768)
-   [29798](https://github.com/numpy/numpy/pull/29798): BUG: np.setbufsize should raise ValueError for negative input
-   [29799](https://github.com/numpy/numpy/pull/29799): BUG: Fix assert in nditer buffer setup
-   [29800](https://github.com/numpy/numpy/pull/29800): BUG: Stable ScalarType ordering
-   [29838](https://github.com/numpy/numpy/pull/29838): TST: Pin pyparsing to avoid matplotlib errors.
-   [29839](https://github.com/numpy/numpy/pull/29839): BUG: linalg: emit a MemoryError on a malloc failure (#29811)
-   [29840](https://github.com/numpy/numpy/pull/29840): BLD: change file extension for libnpymath on win-arm64 from .a\...
-   [29864](https://github.com/numpy/numpy/pull/29864): CI: Fix loongarch64 CI (#29856)
-   [29865](https://github.com/numpy/numpy/pull/29865): TYP: Various typing fixes
-   [29910](https://github.com/numpy/numpy/pull/29910): BUG: Fix float16-sort failures on 32-bit x86 MSVC (#29908)
-   [29911](https://github.com/numpy/numpy/pull/29911): TYP: add missing `__slots__` (#29901)
-   [29913](https://github.com/numpy/numpy/pull/29913): TYP: wrong argument defaults in `testing._private` (#29902)
-   [29920](https://github.com/numpy/numpy/pull/29920): BUG: avoid segmentation fault in string_expandtabs_length_promoter
-   [29921](https://github.com/numpy/numpy/pull/29921): BUG: Fix INT_MIN % -1 to return 0 for all signed integer types\...
-   [29922](https://github.com/numpy/numpy/pull/29922): TYP: minor fixes related to `errstate` (#29914)
-   [29923](https://github.com/numpy/numpy/pull/29923): TST: use requirements/test_requirements across CI (#29919)
-   [29926](https://github.com/numpy/numpy/pull/29926): BUG: fix negative samples generated by Wald distribution (#29609)
-   [29940](https://github.com/numpy/numpy/pull/29940): MAINT: Bump pypa/cibuildwheel from 3.1.4 to 3.2.1
-   [29949](https://github.com/numpy/numpy/pull/29949): STY: rename `classmethod` arg to cls
-   [29950](https://github.com/numpy/numpy/pull/29950): MAINT: Simplify string arena growth strategy (#29885)

2.3.3

The NumPy 2.3.3 release is a patch release split between a number of maintenance
updates and bug fixes. This release supports Python versions 3.11-3.14. Note
that the 3.14.0 final is currently expected in Oct, 2025. This release is based
on 3.14.0rc2.

Contributors

A total of 13 people contributed to this release. People with a \"+\" by their
names contributed a patch for the first time.

-   Aleksandr A. Voyt +
-   Bernard Roesler +
-   Charles Harris
-   Hunter Hogan +
-   Joren Hammudoglu
-   Maanas Arora
-   Matti Picus
-   Nathan Goldbaum
-   Raghuveer Devulapalli
-   Sanjay Kumar Sakamuri Kamalakar +
-   Tobias Markus +
-   Warren Weckesser
-   Zebreus +

Pull requests merged

A total of 23 pull requests were merged for this release.

-   [29440](https://github.com/numpy/numpy/pull/29440): MAINT: Prepare 2.3.x for further development.
-   [29446](https://github.com/numpy/numpy/pull/29446): BUG: Fix test_configtool_pkgconfigdir to resolve PKG_CONFIG_DIR\...
-   [29447](https://github.com/numpy/numpy/pull/29447): BLD: allow targeting webassembly without emscripten
-   [29460](https://github.com/numpy/numpy/pull/29460): MAINT: Backport write_release.py
-   [29473](https://github.com/numpy/numpy/pull/29473): MAINT: Bump pypa/cibuildwheel from 3.1.0 to 3.1.2
-   [29500](https://github.com/numpy/numpy/pull/29500): BUG: Always return a real dtype from linalg.cond (gh-18304) (#29333)
-   [29501](https://github.com/numpy/numpy/pull/29501): MAINT: Add .file entry to all .s SVML files
-   [29556](https://github.com/numpy/numpy/pull/29556): BUG: Casting from one timedelta64 to another didn\'t handle NAT.
-   [29562](https://github.com/numpy/numpy/pull/29562): BLD: update vendored Meson to 1.8.3 \[wheel build\]
-   [29563](https://github.com/numpy/numpy/pull/29563): BUG: Fix metadata not roundtripping when pickling datetime (#29555)
-   [29587](https://github.com/numpy/numpy/pull/29587): TST: update link and version for Intel SDE download
-   [29593](https://github.com/numpy/numpy/pull/29593): TYP: add `sorted` kwarg to `unique`
-   [29672](https://github.com/numpy/numpy/pull/29672): MAINT: Update pythoncapi-compat from main.
-   [29673](https://github.com/numpy/numpy/pull/29673): MAINT: Update cibuildwheel.
-   [29674](https://github.com/numpy/numpy/pull/29674): MAINT: Fix typo in wheels.yml
-   [29683](https://github.com/numpy/numpy/pull/29683): BUG, BLD: Correct regex for ppc64 VSX3/VSX4 feature detection
-   [29684](https://github.com/numpy/numpy/pull/29684): TYP: ndarray.fill() takes no keyword arguments
-   [29685](https://github.com/numpy/numpy/pull/29685): BUG: avoid thread-unsafe refcount check in temp elision
-   [29687](https://github.com/numpy/numpy/pull/29687): CI: replace comment-hider action in mypy_primer workflow
-   [29689](https://github.com/numpy/numpy/pull/29689): BLD: Add missing \<unordered_map\> include
-   [29691](https://github.com/numpy/numpy/pull/29691): BUG: use correct input dtype in flatiter assignment
-   [29700](https://github.com/numpy/numpy/pull/29700): TYP: fix np.bool method declarations
-   [29701](https://github.com/numpy/numpy/pull/29701): BUG: Correct ambiguous logic for s390x CPU feature detection

2.3.2

The NumPy 2.3.2 release is a patch release with a number of bug fixes
and maintenance updates. The highlights are:

-   Wheels for Python 3.14.0rc1
-   PyPy updated to the latest stable release
-   OpenBLAS updated to 0.3.30

This release supports Python versions 3.11-3.14

Contributors

A total of 9 people contributed to this release. People with a \"+\" by
their names contributed a patch for the first time.

-   !DWesl
-   Charles Harris
-   Joren Hammudoglu
-   Maanas Arora
-   Marco Edward Gorelli
-   Matti Picus
-   Nathan Goldbaum
-   Sebastian Berg
-   kostayScr +

Pull requests merged

A total of 16 pull requests were merged for this release.

-   [29256](https://github.com/numpy/numpy/pull/29256): MAINT: Prepare 2.3.x for further development
-   [29283](https://github.com/numpy/numpy/pull/29283): TYP: Work around a mypy issue with bool arrays (#29248)
-   [29284](https://github.com/numpy/numpy/pull/29284): BUG: fix fencepost error in StringDType internals
-   [29287](https://github.com/numpy/numpy/pull/29287): BUG: handle case in mapiter where descriptors might get replaced\...
-   [29350](https://github.com/numpy/numpy/pull/29350): BUG: Fix shape error path in array-interface
-   [29412](https://github.com/numpy/numpy/pull/29412): BUG: Allow reading non-npy files in npz and add test
-   [29413](https://github.com/numpy/numpy/pull/29413): TST: Avoid uninitialized values in test (#29341)
-   [29414](https://github.com/numpy/numpy/pull/29414): BUG: Fix reference leakage for output arrays in reduction functions
-   [29415](https://github.com/numpy/numpy/pull/29415): BUG: fix casting issue in center, ljust, rjust, and zfill (#29369)
-   [29416](https://github.com/numpy/numpy/pull/29416): TYP: Fix overloads in `np.char.array` and `np.char.asarray`\...
-   [29417](https://github.com/numpy/numpy/pull/29417): BUG: Any dtype should call `square` on `arr \*\* 2` (#29392)
-   [29424](https://github.com/numpy/numpy/pull/29424): MAINT: use a stable pypy release in CI
-   [29425](https://github.com/numpy/numpy/pull/29425): MAINT: Support python 314rc1
-   [29429](https://github.com/numpy/numpy/pull/29429): MAINT: Update highway to match main.
-   [29430](https://github.com/numpy/numpy/pull/29430): BLD: use github to build macos-arm64 wheels with OpenBLAS and\...
-   [29437](https://github.com/numpy/numpy/pull/29437): BUG: fix datetime/timedelta hash memory leak (#29411)

Checksums

MD5

 e35c637ea9fba77eabfdf70e26eaa16d  numpy-2.3.2-cp311-cp311-macosx_10_9_x86_64.whl
 3dede42d11c843cfacff422f65a80e47  numpy-2.3.2-cp311-cp311-macosx_11_0_arm64.whl
 f5c485a43210eb3541b254c8c9d6ac9e  numpy-2.3.2-cp311-cp311-macosx_14_0_arm64.whl
 658950eb37e19b42920635ee60830a1d  numpy-2.3.2-cp311-cp311-macosx_14_0_x86_64.whl
 9a864a280798829cc522521bc5d9c7e2  numpy-2.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 085e1ff7746d327a1320672ab86966c3  numpy-2.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 6acefa06c38bc616352b76174d4f19d2  numpy-2.3.2-cp311-cp311-musllinux_1_2_aarch64.whl
 4dd3469970dbfba60dad41b9923c5a5a  numpy-2.3.2-cp311-cp311-musllinux_1_2_x86_64.whl
 ad090139b8b872a9157b92c840566c5e  numpy-2.3.2-cp311-cp311-win32.whl
 09b023f808432e60633e36a13630dc13  numpy-2.3.2-cp311-cp311-win_amd64.whl
 c80f2a1c4c829ccb6745a6d0803b7177  numpy-2.3.2-cp311-cp311-win_arm64.whl
 307fc28e0c630dbc5a6ff4051ee9ec6c  numpy-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl
 4af1ffb81bdec235aef1b9bdf7c1566d  numpy-2.3.2-cp312-cp312-macosx_11_0_arm64.whl
 8003e8df1badaffee163a603bf05656b  numpy-2.3.2-cp312-cp312-macosx_14_0_arm64.whl
 e703fab1c371fd27389401caa34a5cbd  numpy-2.3.2-cp312-cp312-macosx_14_0_x86_64.whl
 5fdc228f15ec5de78b89c7aa4c137019  numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 f3bc10b89911c09777c4c5d9752f35b0  numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 5d0128aa0f6aa3a5122364a727a72eba  numpy-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl
 ef392070c44709321d7f87ab15bbd674  numpy-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl
 909e05dcd1164cc02d5fccc1cc6c9ca6  numpy-2.3.2-cp312-cp312-win32.whl
 3ba0b657682fc54d9433b4d7244c9264  numpy-2.3.2-cp312-cp312-win_amd64.whl
 05755e8c591b1ac2fff05a06d76ac414  numpy-2.3.2-cp312-cp312-win_arm64.whl
 c1e323fa1986bc99ae96c46126a30f93  numpy-2.3.2-cp313-cp313-macosx_10_13_x86_64.whl
 9a89327ef3550581017ea6e2a47c1a8e  numpy-2.3.2-cp313-cp313-macosx_11_0_arm64.whl
 3c7236116911c5c19de0091d7ac81f65  numpy-2.3.2-cp313-cp313-macosx_14_0_arm64.whl
 1809c7adafae6492741864cf4dda7d1e  numpy-2.3.2-cp313-cp313-macosx_14_0_x86_64.whl
 ee68f94ec5f9c0c7f9423d7329bc085e  numpy-2.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 24c4e95f0a615356787e2920378e5c6f  numpy-2.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 5c53a2c915d177b7c305c0386ba21b43  numpy-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl
 c4607ea441320a0078d942ca21ef2411  numpy-2.3.2-cp313-cp313-musllinux_1_2_x86_64.whl
 09f2fdeb35d952751ba269ca5fa77e7a  numpy-2.3.2-cp313-cp313-win32.whl
 47a7326544ce192df844b3e9750c7704  numpy-2.3.2-cp313-cp313-win_amd64.whl
 9b5adab8ee4eb97ccf90d73d63671db4  numpy-2.3.2-cp313-cp313-win_arm64.whl
 7169baf4160b9a75790650cef23a73e1  numpy-2.3.2-cp313-cp313t-macosx_10_13_x86_64.whl
 0338f2a78981d84d84e5f693ed6112d5  numpy-2.3.2-cp313-cp313t-macosx_11_0_arm64.whl
 b0c1c28add9716f7cee433d53fb43067  numpy-2.3.2-cp313-cp313t-macosx_14_0_arm64.whl
 d2d8d43c535184095550420169858b90  numpy-2.3.2-cp313-cp313t-macosx_14_0_x86_64.whl
 745bb6930958f4d7980cd705621abc25  numpy-2.3.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 96412f8c9687d468e260aacdfb9cca02  numpy-2.3.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 11ce971fe997bf5c0784516db85891ff  numpy-2.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl
 e71ba272e9db74bc753ca056e76fdf5b  numpy-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl
 82feb6822f2cf04a9edf38cf7f7d4806  numpy-2.3.2-cp313-cp313t-win32.whl
 c6c8a1a2e94a9fc2dad9d161a6666e54  numpy-2.3.2-cp313-cp313t-win_amd64.whl
 29e65f132c4a916214a0e82bca214717  numpy-2.3.2-cp313-cp313t-win_arm64.whl
 2b99d343001495b182027843bf2148b2  numpy-2.3.2-cp314-cp314-macosx_10_13_x86_64.whl
 40d04ac18cd9db3c380224d3d5607770  numpy-2.3.2-cp314-cp314-macosx_11_0_arm64.whl
 871631874c6839719d1c1b3ad81835cd  numpy-2.3.2-cp314-cp314-macosx_14_0_arm64.whl
 4d4098888f19de85dd18646c2f955cd2  numpy-2.3.2-cp314-cp314-macosx_14_0_x86_64.whl
 813e47e3c07cd28bf0458a1e513d6619  numpy-2.3.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 1fe080566baca813e6ac4635011a408a  numpy-2.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 bd44ab38b53a4b5b6130b6f01ffaf5fa  numpy-2.3.2-cp314-cp314-musllinux_1_2_aarch64.whl
 f2fda217bec39ede344b42fef2cbd9e5  numpy-2.3.2-cp314-cp314-musllinux_1_2_x86_64.whl
 c02218de0d0666769c91513eafaf251f  numpy-2.3.2-cp314-cp314-win32.whl
 d419eb806a6f5debb366d4bcf0f5bde0  numpy-2.3.2-cp314-cp314-win_amd64.whl
 851529ffdf2b0d4b66eb1ac99c24da3e  numpy-2.3.2-cp314-cp314-win_arm64.whl
 2306e8b73fcd2d46116c6a95034e4d3a  numpy-2.3.2-cp314-cp314t-macosx_10_13_x86_64.whl
 b4d4ce3339cb9f0b0f2b339db803f39c  numpy-2.3.2-cp314-cp314t-macosx_11_0_arm64.whl
 6ae336ac461d5d89811c8a236b442842  numpy-2.3.2-cp314-cp314t-macosx_14_0_arm64.whl
 351f35dd00bfb35e6cad2447a14c7cdf  numpy-2.3.2-cp314-cp314t-macosx_14_0_x86_64.whl
 0e0b26b34024f24a5f59809a1778ace0  numpy-2.3.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 bc77a7f5826bb0a38154d31d8444abb7  numpy-2.3.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 cd1e335e2a8437339475db12ee30f26d  numpy-2.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl
 5c8093e713bd7e5f8512458d53fefeed  numpy-2.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl
 66125a7e4e311fc2dedfa8c25ee577f2  numpy-2.3.2-cp314-cp314t-win32.whl
 97713f41a5d4a08e8ed3d629d07678d3  numpy-2.3.2-cp314-cp314t-win_amd64.whl
 848c4c409b643c2b42c431f51b310095  numpy-2.3.2-cp314-cp314t-win_arm64.whl
 e240eed2fc098f7a0ae9813abead8a05  numpy-2.3.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl
 7e46ebe46530596019ae6b5db8a7a564  numpy-2.3.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl
 82077182e608a0d366eba700902463b5  numpy-2.3.2-pp311-pypy311_pp73-macosx_14_0_arm64.whl
 67db17064907cd22a74676b50de1ab6d  numpy-2.3.2-pp311-pypy311_pp73-macosx_14_0_x86_64.whl
 6d59903ecd732d53dd230ca59cdc2c34  numpy-2.3.2-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 baae8d6875e1de409ffef875896c4b4f  numpy-2.3.2-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 5d92d6c39f2f0b28149ed15437b13cf7  numpy-2.3.2-pp311-pypy311_pp73-win_amd64.whl
 f8d3d3b3ecd2b6e98889e88f6bbdc1a3  numpy-2.3.2.tar.gz

SHA256

 852ae5bed3478b92f093e30f785c98e0cb62fa0a939ed057c31716e18a7a22b9  numpy-2.3.2-cp311-cp311-macosx_10_9_x86_64.whl
 7a0e27186e781a69959d0230dd9909b5e26024f8da10683bd6344baea1885168  numpy-2.3.2-cp311-cp311-macosx_11_0_arm64.whl
 f0a1a8476ad77a228e41619af2fa9505cf69df928e9aaa165746584ea17fed2b  numpy-2.3.2-cp311-cp311-macosx_14_0_arm64.whl
 cbc95b3813920145032412f7e33d12080f11dc776262df1712e1638207dde9e8  numpy-2.3.2-cp311-cp311-macosx_14_0_x86_64.whl
 f75018be4980a7324edc5930fe39aa391d5734531b1926968605416ff58c332d  numpy-2.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 20b8200721840f5621b7bd03f8dcd78de33ec522fc40dc2641aa09537df010c3  numpy-2.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 1f91e5c028504660d606340a084db4b216567ded1056ea2b4be4f9d10b67197f  numpy-2.3.2-cp311-cp311-musllinux_1_2_aarch64.whl
 fb1752a3bb9a3ad2d6b090b88a9a0ae1cd6f004ef95f75825e2f382c183b2097  numpy-2.3.2-cp311-cp311-musllinux_1_2_x86_64.whl
 4ae6863868aaee2f57503c7a5052b3a2807cf7a3914475e637a0ecd366ced220  numpy-2.3.2-cp311-cp311-win32.whl
 240259d6564f1c65424bcd10f435145a7644a65a6811cfc3201c4a429ba79170  numpy-2.3.2-cp311-cp311-win_amd64.whl
 4209f874d45f921bde2cff1ffcd8a3695f545ad2ffbef6d3d3c6768162efab89  numpy-2.3.2-cp311-cp311-win_arm64.whl
 bc3186bea41fae9d8e90c2b4fb5f0a1f5a690682da79b92574d63f56b529080b  numpy-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl
 2f4f0215edb189048a3c03bd5b19345bdfa7b45a7a6f72ae5945d2a28272727f  numpy-2.3.2-cp312-cp312-macosx_11_0_arm64.whl
 8b1224a734cd509f70816455c3cffe13a4f599b1bf7130f913ba0e2c0b2006c0  numpy-2.3.2-cp312-cp312-macosx_14_0_arm64.whl
 3dcf02866b977a38ba3ec10215220609ab9667378a9e2150615673f3ffd6c73b  numpy-2.3.2-cp312-cp312-macosx_14_0_x86_64.whl
 572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370  numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73  numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 103ea7063fa624af04a791c39f97070bf93b96d7af7eb23530cd087dc8dbe9dc  numpy-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl
 fc927d7f289d14f5e037be917539620603294454130b6de200091e23d27dc9be  numpy-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl
 d95f59afe7f808c103be692175008bab926b59309ade3e6d25009e9a171f7036  numpy-2.3.2-cp312-cp312-win32.whl
 9e196ade2400c0c737d93465327d1ae7c06c7cb8a1756121ebf54b06ca183c7f  numpy-2.3.2-cp312-cp312-win_amd64.whl
 ee807923782faaf60d0d7331f5e86da7d5e3079e28b291973c545476c2b00d07  numpy-2.3.2-cp312-cp312-win_arm64.whl
 c8d9727f5316a256425892b043736d63e89ed15bbfe6556c5ff4d9d4448ff3b3  numpy-2.3.2-cp313-cp313-macosx_10_13_x86_64.whl
 efc81393f25f14d11c9d161e46e6ee348637c0a1e8a54bf9dedc472a3fae993b  numpy-2.3.2-cp313-cp313-macosx_11_0_arm64.whl
 dd937f088a2df683cbb79dda9a772b62a3e5a8a7e76690612c2737f38c6ef1b6  numpy-2.3.2-cp313-cp313-macosx_14_0_arm64.whl
 11e58218c0c46c80509186e460d79fbdc9ca1eb8d8aee39d8f2dc768eb781089  numpy-2.3.2-cp313-cp313-macosx_14_0_x86_64.whl
 5ad4ebcb683a1f99f4f392cc522ee20a18b2bb12a2c1c42c3d48d5a1adc9d3d2  numpy-2.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 938065908d1d869c7d75d8ec45f735a034771c6ea07088867f713d1cd3bbbe4f  numpy-2.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 66459dccc65d8ec98cc7df61307b64bf9e08101f9598755d42d8ae65d9a7a6ee  numpy-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl
 a7af9ed2aa9ec5950daf05bb11abc4076a108bd3c7db9aa7251d5f107079b6a6  numpy-2.3.2-cp313-cp313-musllinux_1_2_x86_64.whl
 906a30249315f9c8e17b085cc5f87d3f369b35fedd0051d4a84686967bdbbd0b  numpy-2.3.2-cp313-cp313-win32.whl
 c63d95dc9d67b676e9108fe0d2182987ccb0f11933c1e8959f42fa0da8d4fa56  numpy-2.3.2-cp313-cp313-win_amd64.whl
 b05a89f2fb84d21235f93de47129dd4f11c16f64c87c33f5e284e6a3a54e43f2  numpy-2.3.2-cp313-cp313-win_arm64.whl
 4e6ecfeddfa83b02318f4d84acf15fbdbf9ded18e46989a15a8b6995dfbf85ab  numpy-2.3.2-cp313-cp313t-macosx_10_13_x86_64.whl
 508b0eada3eded10a3b55725b40806a4b855961040180028f52580c4729916a2  numpy-2.3.2-cp313-cp313t-macosx_11_0_arm64.whl
 754d6755d9a7588bdc6ac47dc4ee97867271b17cee39cb87aef079574366db0a  numpy-2.3.2-cp313-cp313t-macosx_14_0_arm64.whl
 a9f66e7d2b2d7712410d3bc5684149040ef5f19856f20277cd17ea83e5006286  numpy-2.3.2-cp313-cp313t-macosx_14_0_x86_64.whl
 de6ea4e5a65d5a90c7d286ddff2b87f3f4ad61faa3db8dabe936b34c2275b6f8  numpy-2.3.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 a3ef07ec8cbc8fc9e369c8dcd52019510c12da4de81367d8b20bc692aa07573a  numpy-2.3.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 27c9f90e7481275c7800dc9c24b7cc40ace3fdb970ae4d21eaff983a32f70c91  numpy-2.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl
 07b62978075b67eee4065b166d000d457c82a1efe726cce608b9db9dd66a73a5  numpy-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl
 c771cfac34a4f2c0de8e8c97312d07d64fd8f8ed45bc9f5726a7e947270152b5  numpy-2.3.2-cp313-cp313t-win32.whl
 72dbebb2dcc8305c431b2836bcc66af967df91be793d63a24e3d9b741374c450  numpy-2.3.2-cp313-cp313t-win_amd64.whl
 72c6df2267e926a6d5286b0a6d556ebe49eae261062059317837fda12ddf0c1a  numpy-2.3.2-cp313-cp313t-win_arm64.whl
 448a66d052d0cf14ce9865d159bfc403282c9bc7bb2a31b03cc18b651eca8b1a  numpy-2.3.2-cp314-cp314-macosx_10_13_x86_64.whl
 546aaf78e81b4081b2eba1d105c3b34064783027a06b3ab20b6eba21fb64132b  numpy-2.3.2-cp314-cp314-macosx_11_0_arm64.whl
 87c930d52f45df092f7578889711a0768094debf73cfcde105e2d66954358125  numpy-2.3.2-cp314-cp314-macosx_14_0_arm64.whl
 8dc082ea901a62edb8f59713c6a7e28a85daddcb67454c839de57656478f5b19  numpy-2.3.2-cp314-cp314-macosx_14_0_x86_64.whl
 af58de8745f7fa9ca1c0c7c943616c6fe28e75d0c81f5c295810e3c83b5be92f  numpy-2.3.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 fed5527c4cf10f16c6d0b6bee1f89958bccb0ad2522c8cadc2efd318bcd545f5  numpy-2.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 095737ed986e00393ec18ec0b21b47c22889ae4b0cd2d5e88342e08b01141f58  numpy-2.3.2-cp314-cp314-musllinux_1_2_aarch64.whl
 b5e40e80299607f597e1a8a247ff8d71d79c5b52baa11cc1cce30aa92d2da6e0  numpy-2.3.2-cp314-cp314-musllinux_1_2_x86_64.whl
 7d6e390423cc1f76e1b8108c9b6889d20a7a1f59d9a60cac4a050fa734d6c1e2  numpy-2.3.2-cp314-cp314-win32.whl
 b9d0878b21e3918d76d2209c924ebb272340da1fb51abc00f986c258cd5e957b  numpy-2.3.2-cp314-cp314-win_amd64.whl
 2738534837c6a1d0c39340a190177d7d66fdf432894f469728da901f8f6dc910  numpy-2.3.2-cp314-cp314-win_arm64.whl
 4d002ecf7c9b53240be3bb69d80f86ddbd34078bae04d87be81c1f58466f264e  numpy-2.3.2-cp314-cp314t-macosx_10_13_x86_64.whl
 293b2192c6bcce487dbc6326de5853787f870aeb6c43f8f9c6496db5b1781e45  numpy-2.3.2-cp314-cp314t-macosx_11_0_arm64.whl
 0a4f2021a6da53a0d580d6ef5db29947025ae8b35b3250141805ea9a32bbe86b  numpy-2.3.2-cp314-cp314t-macosx_14_0_arm64.whl
 9c144440db4bf3bb6372d2c3e49834cc0ff7bb4c24975ab33e01199e645416f2  numpy-2.3.2-cp314-cp314t-macosx_14_0_x86_64.whl
 f92d6c2a8535dc4fe4419562294ff957f83a16ebdec66df0805e473ffaad8bd0  numpy-2.3.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 cefc2219baa48e468e3db7e706305fcd0c095534a192a08f31e98d83a7d45fb0  numpy-2.3.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 76c3e9501ceb50b2ff3824c3589d5d1ab4ac857b0ee3f8f49629d0de55ecf7c2  numpy-2.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl
 122bf5ed9a0221b3419672493878ba4967121514b1d7d4656a7580cd11dddcbf  numpy-2.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl
 6f1ae3dcb840edccc45af496f312528c15b1f79ac318169d094e85e4bb35fdf1  numpy-2.3.2-cp314-cp314t-win32.whl
 087ffc25890d89a43536f75c5fe8770922008758e8eeeef61733957041ed2f9b  numpy-2.3.2-cp314-cp314t-win_amd64.whl
 092aeb3449833ea9c0bf0089d70c29ae480685dd2377ec9cdbbb620257f84631  numpy-2.3.2-cp314-cp314t-win_arm64.whl
 14a91ebac98813a49bc6aa1a0dfc09513dcec1d97eaf31ca21a87221a1cdcb15  numpy-2.3.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl
 71669b5daae692189540cffc4c439468d35a3f84f0c88b078ecd94337f6cb0ec  numpy-2.3.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl
 69779198d9caee6e547adb933941ed7520f896fd9656834c300bdf4dd8642712  numpy-2.3.2-pp311-pypy311_pp73-macosx_14_0_arm64.whl
 2c3271cc4097beb5a60f010bcc1cc204b300bb3eafb4399376418a83a1c6373c  numpy-2.3.2-pp311-pypy311_pp73-macosx_14_0_x86_64.whl
 8446acd11fe3dc1830568c941d44449fd5cb83068e5c70bd5a470d323d448296  numpy-2.3.2-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
 aa098a5ab53fa407fded5870865c6275a5cd4101cfdef8d6fafc48286a96e981  numpy-2.3.2-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
 6936aff90dda378c09bea075af0d9c675fe3a977a9d2402f95a87f440f59f619  numpy-2.3.2-pp311-pypy311_pp73-win_amd64.whl
 e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48  numpy-2.3.2.tar.gz

2.3.1

The NumPy 2.3.1 release is a patch release with several bug fixes,
annotation improvements, and better support for OpenBSD. Highlights are:

-   Fix bug in `matmul` for non-contiguous out kwarg parameter
-   Fix for Accelerate runtime warnings on M4 hardware
-   Fix new in NumPy 2.3.0 `np.vectorize` casting errors
-   Improved support of cpu features for FreeBSD and OpenBSD

This release supports Python versions 3.11-3.13, Python 3.14 will be
supported when it is released.

Contributors

A total of 9 people contributed to this release. People with a \"+\" by
their names contributed a patch for the first time.

-   Brad Smith +
-   Charles Harris
-   Developer-Ecosystem-Engineering
-   François Rozet
-   Joren Hammudoglu
-   Matti Picus
-   Mugundan Selvanayagam
-   Nathan Goldbaum
-   Sebastian Berg

Pull requests merged

A total of 12 pull requests were merged for this release.

-   [29140](https://github.com/numpy/numpy/pull/29140): MAINT: Prepare 2.3.x for further development
-   [29191](https://github.com/numpy/numpy/pull/29191): BUG: fix matmul with transposed out arg (#29179)
-   [29192](https://github.com/numpy/numpy/pull/29192): TYP: Backport typing fixes and improvements.
-   [29205](https://github.com/numpy/numpy/pull/29205): BUG: Revert `np.vectorize` casting to legacy behavior (#29196)
-   [29222](https://github.com/numpy/numpy/pull/29222): TYP: Backport typing fixes
-   [29233](https://github.com/numpy/numpy/pull/29233): BUG: avoid negating unsigned integers in resize implementation\...
-   [29234](https://github.com/numpy/numpy/pull/29234): TST: Fix test that uses uninitialized memory (#29232)
-   [29235](https://github.com/numpy/numpy/pull/29235): BUG: Address interaction between SME and FPSR (#29223)
-   [29237](https://github.com/numpy/numpy/pull/29237): BUG: Enforce integer limitation in concatenate (#29231)
-   [29238](https://github.com/numpy/numpy/pull/29238): CI: Add support for building NumPy with LLVM for Win-ARM64
-   [29241](https://github.com/numpy/numpy/pull/29241): ENH: Detect CPU features on OpenBSD ARM and PowerPC64
-   [29242](https://github.com/numpy/numpy/pull/29242): ENH: Detect CPU features on FreeBSD / OpenBSD RISC-V64.

Checksums

MD5

 c353ac75ea083594a6cb674b5f943d83  numpy-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl
 fdb5454e372d399cf570868ea7e2b192  numpy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl
 dc0f17823bb1826519d6974c2b95fa90  numpy-2.3.1-cp311-cp311-macosx_14_0_arm64.whl
 7e3118fe383af697a8868ba191b9eac0  numpy-2.3.1-cp311-cp311-macosx_14_0_x86_64.whl
 705aafad1250aa3e41502c5710a26ed5  numpy-2.3.1-cp311-cp311-manylinux_2_28_aarch64.whl
 003d6268344577b804205098e11cdaa0  numpy-2.3.1-cp311-cp311-manylinux_2_28_x86_64.whl
 7d0c0fd11c573c510a25dd7513e4ae0a  numpy-2.3.1-cp311-cp311-musllinux_1_2_aarch64.whl
 d99f993ef05966ead99df736df18b521  numpy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
 96933cac225fb8b60a9cc2c0efa14d36  numpy-2.3.1-cp311-cp311-win32.whl
 f777712419f3dd586ac294ddce84b274  numpy-2.3.1-cp311-cp311-win_amd64.whl
 1fe2615669de5c271a48b99356fa3528  numpy-2.3.1-cp311-cp311-win_arm64.whl
 fccca48846d41d38966cc75395787f79  numpy-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl
 fa389e78db43f3c2841ce127c1205422  numpy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl
 2554944d786abd284db4a699d4edfe1e  numpy-2.3.1-cp312-cp312-macosx_14_0_arm64.whl
 7fec491834803a8ffa3765ef3d03cea5  numpy-2.3.1-cp312-cp312-macosx_14_0_x86_64.whl
 7c2d8b4412f12b9b02e98349fb5cd760  numpy-2.3.1-cp312-cp312-manylinux_2_28_aarch64.whl
 94dcc636a2f2478666d820e21fc91682  numpy-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl
 404128939d89d1ea26be105fb03b5028  numpy-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl
 e89d8d460060e8315c3ba68b2b649db0  numpy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
 a767bd10267ad6baef9655fb08db3fd3  numpy-2.3.1-cp312-cp312-win32.whl
 f753b957fcb7f06f043cf9c6114f294c  numpy-2.3.1-cp312-cp312-win_amd64.whl
 58ffa7c69587f9bf8f6025794fec7f63  numpy-2.3.1-cp312-cp312-win_arm64.whl
 22a2a9a568dd0866b288ad8bd8bb3e90  numpy-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl
 5e1593fcc8bb3447e995622f2dca017b  numpy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl
 894d56072db9358e0096538710a1a8ce  numpy-2.3.1-cp313-cp313-macosx_14_0_arm64.whl
 593cb311f5170cbcfcefb587cdcc70bb  numpy-2.3.1-cp313-cp313-macosx_14_0_x86_64.whl
 22935447e75acda4075c57b332c0236a  numpy-2.3.1-cp313-cp313-manylinux_2_28_aarch64.whl
 5aa2040f947204e15e95ec87461a7e91  numpy-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl
 6516337f0347974fada21a23a818be64  numpy-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl
 ec956eb37b874b1ec52d6ffccda6ef65  numpy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
 0aaed62cb1bae9c1b1a44d1a4eda2db7  numpy-2.3.1-cp313-cp313-win32.whl
 57829996fc12f649547f0258443bbb20  numpy-2.3.1-cp313-cp313-win_amd64.whl
 a0d0dd68bbf0ab378142b2daff0a8e06  numpy-2.3.1-cp313-cp313-win_arm64.whl
 b22dc66970a8017e4d0ce83ef8c938af  numpy-2.3.1-cp313-cp313t-macosx_10_13_x86_64.whl
 93c17afb38cf8fd876ca2bd9ea7e9612  numpy-2.3.1-cp313-cp313t-macosx_11_0_arm64.whl
 283064dabb434f3dbc1a5e2514b9cb29  numpy-2.3.1-cp313-cp313t-macosx_14_0_arm64.whl
 5b8c778033c98b4a0ce6e5bfc7625f05  numpy-2.3.1-cp313-cp313t-macosx_14_0_x86_64.whl
 2340bd78962f194bcdbee6531d954acc  numpy-2.3.1-cp313-cp313t-manylinux_2_28_aarch64.whl
 43a92ad37dc68d719bdeeeb65b3f4d2f  numpy-2.3.1-cp313-cp313t-manylinux_2_28_x86_64.whl
 eb110c4aa0d73558187397ddfba179ad  numpy-2.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl
 1f7f0076411ed4afa9c4553eb06564cb  numpy-2.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl
 30f30dde6f806070b2164e48a632a350  numpy-2.3.1-cp313-cp313t-win32.whl
 2375e2f2a5b75c5f5c908af6bb85d639  numpy-2.3.1-cp313-cp313t-win_amd64.whl
 b421530a87bb8e9e3d4dc34c75d5d953  numpy-2.3.1-cp313-cp313t-win_arm64.whl
 b1bc3cbf9cd407964b2bb25dfe86ca3d  numpy-2.3.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl
 4c2e234eb4f346f362d6e6c620fa7a56  numpy-2.3.1-pp311-pypy311_pp73-macosx_14_0_arm64.whl
 98ec3c19a365d0ae926113bb349e323b  numpy-2.3.1-pp311-pypy311_pp73-macosx_14_0_x86_64.whl
 e0c7bcd526cde46489d5a8f12e06cc77  numpy-2.3.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
 41f535aa1f1acaf3d8a32a462a4cd4c8  numpy-2.3.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
 2abf906a6688c98693045cbbc655d5b7  numpy-2.3.1-pp311-pypy311_pp73-win_amd64.whl
 886559a4c541298b37245e389ce8bf10  numpy-2.3.1.tar.gz

SHA256

 6ea9e48336a402551f52cd8f593343699003d2353daa4b72ce8d34f66b722070  numpy-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl
 5ccb7336eaf0e77c1635b232c141846493a588ec9ea777a7c24d7166bb8533ae  numpy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl
 0bb3a4a61e1d327e035275d2a993c96fa786e4913aa089843e6a2d9dd205c66a  numpy-2.3.1-cp311-cp311-macosx_14_0_arm64.whl
 e344eb79dab01f1e838ebb67aab09965fb271d6da6b00adda26328ac27d4a66e  numpy-2.3.1-cp311-cp311-macosx_14_0_x86_64.whl
 467db865b392168ceb1ef1ffa6f5a86e62468c43e0cfb4ab6da667ede10e58db  numpy-2.3.1-cp311-cp311-manylinux_2_28_aarch64.whl
 afed2ce4a84f6b0fc6c1ce734ff368cbf5a5e24e8954a338f3bdffa0718adffb  numpy-2.3.1-cp311-cp311-manylinux_2_28_x86_64.whl
 0025048b3c1557a20bc80d06fdeb8cc7fc193721484cca82b2cfa072fec71a93  numpy-2.3.1-cp311-cp311-musllinux_1_2_aarch64.whl
 a5ee121b60aa509679b682819c602579e1df14a5b07fe95671c8849aad8f2115  numpy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
 a8b740f5579ae4585831b3cf0e3b0425c667274f82a484866d2adf9570539369  numpy-2.3.1-cp311-cp311-win32.whl
 d4580adadc53311b163444f877e0789f1c8861e2698f6b2a4ca852fda154f3ff  numpy-2.3.1-cp311-cp311-win_amd64.whl
 ec0bdafa906f95adc9a0c6f26a4871fa753f25caaa0e032578a30457bff0af6a  numpy-2.3.1-cp311-cp311-win_arm64.whl
 2959d8f268f3d8ee402b04a9ec4bb7604555aeacf78b360dc4ec27f1d508177d  numpy-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl
 762e0c0c6b56bdedfef9a8e1d4538556438288c4276901ea008ae44091954e29  numpy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl
 867ef172a0976aaa1f1d1b63cf2090de8b636a7674607d514505fb7276ab08fc  numpy-2.3.1-cp312-cp312-macosx_14_0_arm64.whl
 4e602e1b8682c2b833af89ba641ad4176053aaa50f5cacda1a27004352dde943  numpy-2.3.1-cp312-cp312-macosx_14_0_x86_64.whl
 8e333040d069eba1652fb08962ec5b76af7f2c7bce1df7e1418c8055cf776f25  numpy-2.3.1-cp312-cp312-manylinux_2_28_aarch64.whl
 e7cbf5a5eafd8d230a3ce356d892512185230e4781a361229bd902ff403bc660  numpy-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl
 5f1b8f26d1086835f442286c1d9b64bb3974b0b1e41bb105358fd07d20872952  numpy-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl
 ee8340cb48c9b7a5899d1149eece41ca535513a9698098edbade2a8e7a84da77  numpy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
 e772dda20a6002ef7061713dc1e2585bc1b534e7909b2030b5a46dae8ff077ab  numpy-2.3.1-cp312-cp312-win32.whl
 cfecc7822543abdea6de08758091da655ea2210b8ffa1faf116b940693d3df76  numpy-2.3.1-cp312-cp312-win_amd64.whl
 7be91b2239af2658653c5bb6f1b8bccafaf08226a258caf78ce44710a0160d30  numpy-2.3.1-cp312-cp312-win_arm64.whl
 25a1992b0a3fdcdaec9f552ef10d8103186f5397ab45e2d25f8ac51b1a6b97e8  numpy-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl
 7dea630156d39b02a63c18f508f85010230409db5b2927ba59c8ba4ab3e8272e  numpy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl
 bada6058dd886061f10ea15f230ccf7dfff40572e99fef440a4a857c8728c9c0  numpy-2.3.1-cp313-cp313-macosx_14_0_arm64.whl
 a894f3816eb17b29e4783e5873f92faf55b710c2519e5c351767c51f79d8526d  numpy-2.3.1-cp313-cp313-macosx_14_0_x86_64.whl
 18703df6c4a4fee55fd3d6e5a253d01c5d33a295409b03fda0c86b3ca2ff41a1  numpy-2.3.1-cp313-cp313-manylinux_2_28_aarch64.whl
 5902660491bd7a48b2ec16c23ccb9124b8abfd9583c5fdfa123fe6b421e03de1  numpy-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl
 36890eb9e9d2081137bd78d29050ba63b8dab95dff7912eadf1185e80074b2a0  numpy-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl
 a780033466159c2270531e2b8ac063704592a0bc62ec4a1b991c7c40705eb0e8  numpy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
 39bff12c076812595c3a306f

@pyup-bot pyup-bot mentioned this pull request Dec 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants