Numpy

Latest version: v2.2.1

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 23

2.1

3.13. This support was enabled by fixing a number of C thread-safety
issues in NumPy. Before NumPy 2.1, NumPy used a large number of C global
static variables to store runtime caches and other state. We have either
refactored to avoid the need for global state, converted the global
state to thread-local state, or added locking.

Support for free-threaded Python does not mean that NumPy is thread
safe. Read-only shared access to ndarray should be safe. NumPy exposes
shared mutable state and we have not added any locking to the array
object itself to serialize access to shared state. Care must be taken in
user code to avoid races if you would like to mutate the same array in
multiple threads. It is certainly possible to crash NumPy by mutating an
array simultaneously in multiple threads, for example by calling a ufunc
and the `resize` method simultaneously. For now our guidance is:
\"don\'t do that\". In the future we would like to provide stronger
guarantees.

Object arrays in particular need special care, since the GIL previously
provided locking for object array access and no longer does. See
[Issue 27199](https://github.com/numpy/numpy/issues/27199) for more information about object
arrays in the free-threaded build.

If you are interested in free-threaded Python, for example because you
have a multiprocessing-based workflow that you are interested in running
with Python threads, we encourage testing and experimentation.

If you run into problems that you suspect are because of NumPy, please
[open an issue](https://github.com/numpy/numpy/issues/new/choose),
checking first if the bug also occurs in the \"regular\" non-free-threaded CPython 3.13
build. Many threading bugs can also occur in code that releases
the GIL; disabling the GIL only makes it easier to hit threading bugs.

([gh-26157](https://github.com/numpy/numpy/issues/26157#issuecomment-2233864940))

`f2py` can generate freethreading-compatible C extensions

Pass `--freethreading-compatible` to the f2py CLI tool to produce a C
extension marked as compatible with the free threading CPython
interpreter. Doing so prevents the interpreter from re-enabling the GIL
at runtime when it imports the C extension. Note that `f2py` does not
analyze fortran code for thread safety, so you must verify that the
wrapped fortran code is thread safe before marking the extension as
compatible.

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

- `numpy.reshape` and `numpy.ndarray.reshape` now support `shape` and
`copy` arguments.

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

- NumPy now supports DLPack v1, support for older versions will be
deprecated in the future.

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

- `numpy.asanyarray` now supports `copy` and `device` arguments,
matching `numpy.asarray`.

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

- `numpy.printoptions`, `numpy.get_printoptions`, and
`numpy.set_printoptions` now support a new option, `override_repr`,
for defining custom `repr(array)` behavior.

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

- `numpy.cumulative_sum` and `numpy.cumulative_prod` were added as
Array API compatible alternatives for `numpy.cumsum` and
`numpy.cumprod`. The new functions can include a fixed initial
(zeros for `sum` and ones for `prod`) in the result.

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

- `numpy.clip` now supports `max` and `min` keyword arguments which
are meant to replace `a_min` and `a_max`. Also, for `np.clip(a)` or
`np.clip(a, None, None)` a copy of the input array will be returned
instead of raising an error.

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

- `numpy.astype` now supports `device` argument.

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


Improvements

`histogram` auto-binning now returns bin sizes \>=1 for integer input data

For integer input data, bin sizes smaller than 1 result in spurious
empty bins. This is now avoided when the number of bins is computed
using one of the algorithms provided by `histogram_bin_edges`.

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

`ndarray` shape-type parameter is now covariant and bound to `tuple[int, ...]`

Static typing for `ndarray` is a long-term effort that continues with
this change. It is a generic type with type parameters for the shape and
the data type. Previously, the shape type parameter could be any value.
This change restricts it to a tuple of ints, as one would expect from
using `ndarray.shape`. Further, the shape-type parameter has been
changed from invariant to covariant. This change also applies to the
subtypes of `ndarray`, e.g. `numpy.ma.MaskedArray`. See the
[typing docs](https://typing.readthedocs.io/en/latest/reference/generics.html#variance-of-generic-types)
for more information.

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

`np.quantile` with method `closest_observation` chooses nearest even order statistic

This changes the definition of nearest for border cases from the nearest
odd order statistic to nearest even order statistic. The numpy
implementation now matches other reference implementations.

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

`lapack_lite` is now thread safe

NumPy provides a minimal low-performance version of LAPACK named
`lapack_lite` that can be used if no BLAS/LAPACK system is detected at
build time.

Until now, `lapack_lite` was not thread safe. Single-threaded use cases
did not hit any issues, but running linear algebra operations in
multiple threads could lead to errors, incorrect results, or segfaults
due to data races.

We have added a global lock, serializing access to `lapack_lite` in
multiple threads.

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

The `numpy.printoptions` context manager is now thread and async-safe

In prior versions of NumPy, the printoptions were defined using a
combination of Python and C global variables. We have refactored so the
state is stored in a python `ContextVar`, making the context manager
thread and async-safe.

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

Type hinting `numpy.polynomial`

Starting from the 2.1 release, PEP 484 type annotations have been
included for the functions and convenience classes in `numpy.polynomial`
and its sub-packages.

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

Improved `numpy.dtypes` type hints

The type annotations for `numpy.dtypes` are now a better reflection of
the runtime: The `numpy.dtype` type-aliases have been replaced with
specialized `dtype` *subtypes*, and the previously missing annotations
for `numpy.dtypes.StringDType` have been added.

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

Performance improvements and changes

- `numpy.save` now uses pickle protocol version 4 for saving arrays
with object dtype, which allows for pickle objects larger than 4GB
and improves saving speed by about 5% for large arrays.

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

- OpenBLAS on x86_64 and i686 is built with fewer kernels. Based on
benchmarking, there are 5 clusters of performance around these
kernels: `PRESCOTT NEHALEM SANDYBRIDGE HASWELL SKYLAKEX`.

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

- OpenBLAS on windows is linked without quadmath, simplifying
licensing

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

- Due to a regression in OpenBLAS on windows, the performance
improvements when using multiple threads for OpenBLAS 0.3.26 were
reverted.

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

`ma.cov` and `ma.corrcoef` are now significantly faster

The private function has been refactored along with `ma.cov` and
`ma.corrcoef`. They are now significantly faster, particularly on large,
masked arrays.

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

Changes

- As `numpy.vecdot` is now a ufunc it has a less precise signature.
This is due to the limitations of ufunc\'s typing stub.

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

- `numpy.floor`, `numpy.ceil`, and `numpy.trunc` now won\'t perform
casting to a floating dtype for integer and boolean dtype input
arrays.

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

`ma.corrcoef` may return a slightly different result

A pairwise observation approach is currently used in `ma.corrcoef` to
calculate the standard deviations for each pair of variables. This has
been changed as it is being used to normalise the covariance, estimated
using `ma.cov`, which does not consider the observations for each
variable in a pairwise manner, rendering it unnecessary. The
normalisation has been replaced by the more appropriate standard
deviation for each variable, which significantly reduces the wall time,
but will return slightly different estimates of the correlation
coefficients in cases where the observations between a pair of variables
are not aligned. However, it will return the same estimates in all other
cases, including returning the same correlation matrix as `corrcoef`
when using a masked array with no masked values.

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

Cast-safety fixes in `copyto` and `full`

`copyto` now uses NEP 50 correctly and applies this to its cast safety.
Python integer to NumPy integer casts and Python float to NumPy float
casts are now considered \"safe\" even if assignment may fail or
precision may be lost. This means the following examples change
slightly:

- `np.copyto(int8_arr, 1000)` previously performed an unsafe/same-kind cast
of the Python integer. It will now always raise, to achieve an
unsafe cast you must pass an array or NumPy scalar.

- `np.copyto(uint8_arr, 1000, casting="safe")` will raise an
OverflowError rather than a TypeError due to same-kind casting.

- `np.copyto(float32_arr, 1e300, casting="safe")` will overflow to
`inf` (float32 cannot hold `1e300`) rather raising a TypeError.

Further, only the dtype is used when assigning NumPy scalars (or 0-d
arrays), meaning that the following behaves differently:

- `np.copyto(float32_arr, np.float64(3.0), casting="safe")` raises.
- `np.coptyo(int8_arr, np.int64(100), casting="safe")` raises.
Previously, NumPy checked whether the 100 fits the `int8_arr`.

This aligns `copyto`, `full`, and `full_like` with the correct NumPy 2
behavior.

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

Checksums

MD5

2323404663c0b2a86362319d7526eb80 numpy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl
3d4bca8d05eb1eba859e77ff8f91d843 numpy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl
9bd065f147dbf3f2d59ab57bff4f0074 numpy-2.1.0-cp310-cp310-macosx_14_0_arm64.whl
47d177533511901cd6bf77f72cbd3d6e numpy-2.1.0-cp310-cp310-macosx_14_0_x86_64.whl
530b7f38f64216f1322b39bc50f36c0c numpy-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d2a3161a10811a675a29a63e25636d83 numpy-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
4e9fb20b080f7931791da71708740b83 numpy-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl
776eb610795d63217980a36eb23bf268 numpy-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
8328b9e2afa4013aaf3e4963349445e2 numpy-2.1.0-cp310-cp310-win32.whl
e3184b9979192c8d7b80deb2af16d6bb numpy-2.1.0-cp310-cp310-win_amd64.whl
54571aef9d9081e35bebef10f8d64e75 numpy-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl
841dac2386c1da870a384b64cd31e32b numpy-2.1.0-cp311-cp311-macosx_14_0_arm64.whl
0fe85239ebe336d2baaddcb0ed001dc7 numpy-2.1.0-cp311-cp311-macosx_14_0_x86_64.whl
772a55a6c46f7b643af4640c2ca68d70 numpy-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
64fefbc527229521cf2a516b778b8aa7 numpy-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
5cdb3d262d8c513b0f08cd1b6ba48512 numpy-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl
16140f5de42e87d84b80c350fd014893 numpy-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
5e37df534d167af1966e099e0be9d94a numpy-2.1.0-cp311-cp311-win32.whl
ee443aa000621bed8bb2d6a94afd89b5 numpy-2.1.0-cp311-cp311-win_amd64.whl
d8c911fc34a8dad4ed821036563b5758 numpy-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl
ec25d637c43ae8229052e62a4f40f2d2 numpy-2.1.0-cp312-cp312-macosx_11_0_arm64.whl
67c7abca3d0339f17a8543abc0e7bf11 numpy-2.1.0-cp312-cp312-macosx_14_0_arm64.whl
0d36ec6a64cbef1d727eb608a236ad2c numpy-2.1.0-cp312-cp312-macosx_14_0_x86_64.whl
0eedab574a3b75ec237be910e9717153 numpy-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
73dd2a5d0c85007bf5fdb4b7f66b8451 numpy-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
94fb0cfbc647a34177c766570fad752b numpy-2.1.0-cp312-cp312-musllinux_1_1_x86_64.whl
de3efbbcd792a1f82d0e3e175ea02ca9 numpy-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
9a63ebbfb3c4c6eba77ef0723a5dc86f numpy-2.1.0-cp312-cp312-win32.whl
c68bc27545ac68c54935a1d0278b18f6 numpy-2.1.0-cp312-cp312-win_amd64.whl
f2795bb974af42e2723e32af9b14b66d numpy-2.1.0-cp313-cp313-macosx_10_13_x86_64.whl
2f7426b06a332ea7a20159f3c06d67d1 numpy-2.1.0-cp313-cp313-macosx_11_0_arm64.whl
fcef18e031fc8588227023bac55d9636 numpy-2.1.0-cp313-cp313-macosx_14_0_arm64.whl
cbb5ca4dc798ea397344c93a2549e73e numpy-2.1.0-cp313-cp313-macosx_14_0_x86_64.whl
573213bea3a67452a310355adc7c6aa1 numpy-2.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
24f8c8a1235aeaedb8f154a984b3c78b numpy-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b2ef762c0ebb02b58a339c1e38f032b2 numpy-2.1.0-cp313-cp313-musllinux_1_1_x86_64.whl
50e68cbfeb330aff607969c30251632d numpy-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
21228342cd1b4ff8c7ec1aea45c07186 numpy-2.1.0-cp313-cp313-win32.whl
8d234b05f0c4faf7b9884a1f0f19c23d numpy-2.1.0-cp313-cp313-win_amd64.whl
e0c19ca29fa8e8e051107cd36b978f05 numpy-2.1.0-cp313-cp313t-macosx_10_13_x86_64.whl
98756f2ff9adc2cf374c28db77e28312 numpy-2.1.0-cp313-cp313t-macosx_11_0_arm64.whl
69786349d1f392dc6ac3fe00271e941b numpy-2.1.0-cp313-cp313t-macosx_14_0_arm64.whl
4d1481bcb17aaebfc785e005455da223 numpy-2.1.0-cp313-cp313t-macosx_14_0_x86_64.whl
1d403eda14369ab023d5ae1c15dce25c numpy-2.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
cdeece2cd6508eeee5a4c3150b58ec59 numpy-2.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
85347b754d8324c508f7aeb7de243feb numpy-2.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl
6ff18d36d0940de6c1cc962a61b44bd5 numpy-2.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl
2f7d60a99c236a8f909bd86b8ed1e3a4 numpy-2.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
dc610133d9f09e5b3d396859e75c5593 numpy-2.1.0-pp310-pypy310_pp73-macosx_14_0_x86_64.whl
6a2883ee5b16ab5c031037cc63c20e9b numpy-2.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
c914ba2fe3fcdcd04c8fe6a8374ea5fb numpy-2.1.0-pp310-pypy310_pp73-win_amd64.whl
4cb2230ffa1cc41329ae29bd69ee08de numpy-2.1.0.tar.gz

SHA256

6326ab99b52fafdcdeccf602d6286191a79fe2fda0ae90573c5814cd2b0bc1b8 numpy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl
0937e54c09f7a9a68da6889362ddd2ff584c02d015ec92672c099b61555f8911 numpy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl
30014b234f07b5fec20f4146f69e13cfb1e33ee9a18a1879a0142fbb00d47673 numpy-2.1.0-cp310-cp310-macosx_14_0_arm64.whl
899da829b362ade41e1e7eccad2cf274035e1cb36ba73034946fccd4afd8606b numpy-2.1.0-cp310-cp310-macosx_14_0_x86_64.whl
08801848a40aea24ce16c2ecde3b756f9ad756586fb2d13210939eb69b023f5b numpy-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
398049e237d1aae53d82a416dade04defed1a47f87d18d5bd615b6e7d7e41d1f numpy-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0abb3916a35d9090088a748636b2c06dc9a6542f99cd476979fb156a18192b84 numpy-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl
10e2350aea18d04832319aac0f887d5fcec1b36abd485d14f173e3e900b83e33 numpy-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
f6b26e6c3b98adb648243670fddc8cab6ae17473f9dc58c51574af3e64d61211 numpy-2.1.0-cp310-cp310-win32.whl
f505264735ee074250a9c78247ee8618292091d9d1fcc023290e9ac67e8f1afa numpy-2.1.0-cp310-cp310-win_amd64.whl
76368c788ccb4f4782cf9c842b316140142b4cbf22ff8db82724e82fe1205dce numpy-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl
f8e93a01a35be08d31ae33021e5268f157a2d60ebd643cfc15de6ab8e4722eb1 numpy-2.1.0-cp311-cp311-macosx_14_0_arm64.whl
9523f8b46485db6939bd069b28b642fec86c30909cea90ef550373787f79530e numpy-2.1.0-cp311-cp311-macosx_14_0_x86_64.whl
54139e0eb219f52f60656d163cbe67c31ede51d13236c950145473504fa208cb numpy-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
f5ebbf9fbdabed208d4ecd2e1dfd2c0741af2f876e7ae522c2537d404ca895c3 numpy-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
378cb4f24c7d93066ee4103204f73ed046eb88f9ad5bb2275bb9fa0f6a02bd36 numpy-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl
d8f699a709120b220dfe173f79c73cb2a2cab2c0b88dd59d7b49407d032b8ebd numpy-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
ffbd6faeb190aaf2b5e9024bac9622d2ee549b7ec89ef3a9373fa35313d44e0e numpy-2.1.0-cp311-cp311-win32.whl
0af3a5987f59d9c529c022c8c2a64805b339b7ef506509fba7d0556649b9714b numpy-2.1.0-cp311-cp311-win_amd64.whl
fe76d75b345dc045acdbc006adcb197cc680754afd6c259de60d358d60c93736 numpy-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl
f358ea9e47eb3c2d6eba121ab512dfff38a88db719c38d1e67349af210bc7529 numpy-2.1.0-cp312-cp312-macosx_11_0_arm64.whl
dd94ce596bda40a9618324547cfaaf6650b1a24f5390350142499aa4e34e53d1 numpy-2.1.0-cp312-cp312-macosx_14_0_arm64.whl
b47c551c6724960479cefd7353656498b86e7232429e3a41ab83be4da1b109e8 numpy-2.1.0-cp312-cp312-macosx_14_0_x86_64.whl
a0756a179afa766ad7cb6f036de622e8a8f16ffdd55aa31f296c870b5679d745 numpy-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
24003ba8ff22ea29a8c306e61d316ac74111cebf942afbf692df65509a05f111 numpy-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b34fa5e3b5d6dc7e0a4243fa0f81367027cb6f4a7215a17852979634b5544ee0 numpy-2.1.0-cp312-cp312-musllinux_1_1_x86_64.whl
c4f982715e65036c34897eb598d64aef15150c447be2cfc6643ec7a11af06574 numpy-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
c4cd94dfefbefec3f8b544f61286584292d740e6e9d4677769bc76b8f41deb02 numpy-2.1.0-cp312-cp312-win32.whl
a0cdef204199278f5c461a0bed6ed2e052998276e6d8ab2963d5b5c39a0500bc numpy-2.1.0-cp312-cp312-win_amd64.whl
8ab81ccd753859ab89e67199b9da62c543850f819993761c1e94a75a814ed667 numpy-2.1.0-cp313-cp313-macosx_10_13_x86_64.whl
442596f01913656d579309edcd179a2a2f9977d9a14ff41d042475280fc7f34e numpy-2.1.0-cp313-cp313-macosx_11_0_arm64.whl
848c6b5cad9898e4b9ef251b6f934fa34630371f2e916261070a4eb9092ffd33 numpy-2.1.0-cp313-cp313-macosx_14_0_arm64.whl
54c6a63e9d81efe64bfb7bcb0ec64332a87d0b87575f6009c8ba67ea6374770b numpy-2.1.0-cp313-cp313-macosx_14_0_x86_64.whl
652e92fc409e278abdd61e9505649e3938f6d04ce7ef1953f2ec598a50e7c195 numpy-2.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
0ab32eb9170bf8ffcbb14f11613f4a0b108d3ffee0832457c5d4808233ba8977 numpy-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
8fb49a0ba4d8f41198ae2d52118b050fd34dace4b8f3fb0ee34e23eb4ae775b1 numpy-2.1.0-cp313-cp313-musllinux_1_1_x86_64.whl
44e44973262dc3ae79e9063a1284a73e09d01b894b534a769732ccd46c28cc62 numpy-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
ab83adc099ec62e044b1fbb3a05499fa1e99f6d53a1dde102b2d85eff66ed324 numpy-2.1.0-cp313-cp313-win32.whl
de844aaa4815b78f6023832590d77da0e3b6805c644c33ce94a1e449f16d6ab5 numpy-2.1.0-cp313-cp313-win_amd64.whl
343e3e152bf5a087511cd325e3b7ecfd5b92d369e80e74c12cd87826e263ec06 numpy-2.1.0-cp313-cp313t-macosx_10_13_x86_64.whl
f07fa2f15dabe91259828ce7d71b5ca9e2eb7c8c26baa822c825ce43552f4883 numpy-2.1.0-cp313-cp313t-macosx_11_0_arm64.whl
5474dad8c86ee9ba9bb776f4b99ef2d41b3b8f4e0d199d4f7304728ed34d0300 numpy-2.1.0-cp313-cp313t-macosx_14_0_arm64.whl
1f817c71683fd1bb5cff1529a1d085a57f02ccd2ebc5cd2c566f9a01118e3b7d numpy-2.1.0-cp313-cp313t-macosx_14_0_x86_64.whl
3a3336fbfa0d38d3deacd3fe7f3d07e13597f29c13abf4d15c3b6dc2291cbbdd numpy-2.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
7a894c51fd8c4e834f00ac742abad73fc485df1062f1b875661a3c1e1fb1c2f6 numpy-2.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9156ca1f79fc4acc226696e95bfcc2b486f165a6a59ebe22b2c1f82ab190384a numpy-2.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl
624884b572dff8ca8f60fab591413f077471de64e376b17d291b19f56504b2bb numpy-2.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl
15ef8b2177eeb7e37dd5ef4016f30b7659c57c2c0b57a779f1d537ff33a72c7b numpy-2.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
e5f0642cdf4636198a4990de7a71b693d824c56a757862230454629cf62e323d numpy-2.1.0-pp310-pypy310_pp73-macosx_14_0_x86_64.whl
f15976718c004466406342789f31b6673776360f3b1e3c575f25302d7e789575 numpy-2.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
6c1de77ded79fef664d5098a66810d4d27ca0224e9051906e634b3f7ead134c2 numpy-2.1.0-pp310-pypy310_pp73-win_amd64.whl
7dc90da0081f7e1da49ec4e398ede6a8e9cc4f5ebe5f9e06b443ed889ee9aaa2 numpy-2.1.0.tar.gz

2.1.0

NumPy 2.1.0 provides support for the upcoming Python 3.13 release and
drops support for Python 3.9. In addition to the usual bug fixes and
updated Python support, it helps get us back into our usual release
cycle after the extended development of 2.0. The highlights for this
release are:

- Support for the array-api 2023.12 standard.
- Support for Python 3.13.
- Preliminary support for free threaded Python 3.13.

Python versions 3.10-3.13 are supported in this release.

New functions

New function `numpy.unstack`

A new function `np.unstack(array, axis=...)` was added, which splits an
array into a tuple of arrays along an axis. It serves as the inverse of
[numpy.stack]{.title-ref}.

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

Deprecations

- The `fix_imports` keyword argument in `numpy.save` is deprecated.
Since NumPy 1.17, `numpy.save` uses a pickle protocol that no longer
supports Python 2, and ignored `fix_imports` keyword. This keyword
is kept only for backward compatibility. It is now deprecated.

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

- Passing non-integer inputs as the first argument of
[bincount]{.title-ref} is now deprecated, because such inputs are
silently cast to integers with no warning about loss of precision.

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

Expired deprecations

- Scalars and 0D arrays are disallowed for `numpy.nonzero` and
`numpy.ndarray.nonzero`.

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

- `set_string_function` internal function was removed and
`PyArray_SetStringFunction` was stubbed out.

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

C API changes

API symbols now hidden but customizable

NumPy now defaults to hide the API symbols it adds to allow all NumPy
API usage. This means that by default you cannot dynamically fetch the
NumPy API from another library (this was never possible on windows).

If you are experiencing linking errors related to `PyArray_API` or
`PyArray_RUNTIME_VERSION`, you can define the `NPY_API_SYMBOL_ATTRIBUTE`
to opt-out of this change.

If you are experiencing problems due to an upstream header including
NumPy, the solution is to make sure you
`include "numpy/ndarrayobject.h"` before their header and import NumPy
yourself based on `including-the-c-api`.

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

Many shims removed from npy_3kcompat.h

Many of the old shims and helper functions were removed from
`npy_3kcompat.h`. If you find yourself in need of these, vendor the
previous version of the file into your codebase.

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

New `PyUFuncObject` field `process_core_dims_func`

The field `process_core_dims_func` was added to the structure
`PyUFuncObject`. For generalized ufuncs, this field can be set to a
function of type `PyUFunc_ProcessCoreDimsFunc` that will be called when
the ufunc is called. It allows the ufunc author to check that core
dimensions satisfy additional constraints, and to set output core
dimension sizes if they have not been provided.

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

New Features

- `numpy.reshape` and `numpy.ndarray.reshape` now support `shape` and
`copy` arguments.

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

- NumPy now supports DLPack v1, support for older versions will be
deprecated in the future.

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

- `numpy.asanyarray` now supports `copy` and `device` arguments,
matching `numpy.asarray`.

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

- `numpy.printoptions`, `numpy.get_printoptions`, and
`numpy.set_printoptions` now support a new option, `override_repr`,
for defining custom `repr(array)` behavior.

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

- `numpy.cumulative_sum` and `numpy.cumulative_prod` were added as
Array API compatible alternatives for `numpy.cumsum` and
`numpy.cumprod`. The new functions can include a fixed initial
(zeros for `sum` and ones for `prod`) in the result.

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

- `numpy.clip` now supports `max` and `min` keyword arguments which
are meant to replace `a_min` and `a_max`. Also, for `np.clip(a)` or
`np.clip(a, None, None)` a copy of the input array will be returned
instead of raising an error.

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

- `numpy.astype` now supports `device` argument.

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

`f2py` can generate freethreading-compatible C extensions

Pass `--freethreading-compatible` to the f2py CLI tool to produce a C
extension marked as compatible with the free threading CPython
interpreter. Doing so prevents the interpreter from re-enabling the GIL
at runtime when it imports the C extension. Note that `f2py` does not
analyze fortran code for thread safety, so you must verify that the
wrapped fortran code is thread safe before marking the extension as
compatible.

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

Improvements

`histogram` auto-binning now returns bin sizes \>=1 for integer input data

For integer input data, bin sizes smaller than 1 result in spurious
empty bins. This is now avoided when the number of bins is computed
using one of the algorithms provided by `histogram_bin_edges`.

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

`ndarray` shape-type parameter is now covariant and bound to `tuple[int, ...]`

Static typing for `ndarray` is a long-term effort that continues with
this change. It is a generic type with type parameters for the shape and
the data type. Previously, the shape type parameter could be any value.
This change restricts it to a tuple of ints, as one would expect from
using `ndarray.shape`. Further, the shape-type parameter has been
changed from invariant to covariant. This change also applies to the
subtypes of `ndarray`, e.g. `numpy.ma.MaskedArray`. See the [typing
docs](https://typing.readthedocs.io/en/latest/reference/generics.html#variance-of-generic-types)
for more information.

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

`np.quantile` with method `closest_observation` chooses nearest even order statistic

This changes the definition of nearest for border cases from the nearest
odd order statistic to nearest even order statistic. The numpy
implementation now matches other reference implementations.

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

`lapack_lite` is now thread safe

NumPy provides a minimal low-performance version of LAPACK named
`lapack_lite` that can be used if no BLAS/LAPACK system is detected at
build time.

Until now, `lapack_lite` was not thread safe. Single-threaded use cases
did not hit any issues, but running linear algebra operations in
multiple threads could lead to errors, incorrect results, or segfaults
due to data races.

We have added a global lock, serializing access to `lapack_lite` in
multiple threads.

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

The `numpy.printoptions` context manager is now thread and async-safe

In prior versions of NumPy, the printoptions were defined using a
combination of Python and C global variables. We have refactored so the
state is stored in a python `ContextVar`, making the context manager
thread and async-safe.

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

Performance improvements and changes

- `numpy.save` now uses pickle protocol version 4 for saving arrays
with object dtype, which allows for pickle objects larger than 4GB
and improves saving speed by about 5% for large arrays.

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

- OpenBLAS on x86_64 and i686 is built with fewer kernels. Based on
benchmarking, there are 5 clusters of performance around these
kernels: `PRESCOTT NEHALEM SANDYBRIDGE HASWELL SKYLAKEX`.

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

- OpenBLAS on windows is linked without quadmath, simplifying
licensing

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

- Due to a regression in OpenBLAS on windows, the performance
improvements when using multiple threads for OpenBLAS 0.3.26 were
reverted.

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

`ma.cov` and `ma.corrcoef` are now significantly faster

The private function has been refactored along with `ma.cov` and
`ma.corrcoef`. They are now significantly faster, particularly on large,
masked arrays.

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

Changes

- As `numpy.vecdot` is now a ufunc it has a less precise signature.
This is due to the limitations of ufunc\'s typing stub.

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

- `numpy.floor`, `numpy.ceil`, and `numpy.trunc` now won\'t perform
casting to a floating dtype for integer and boolean dtype input
arrays.

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

`ma.corrcoef` may return a slightly different result

A pairwise observation approach is currently used in `ma.corrcoef` to
calculate the standard deviations for each pair of variables. This has
been changed as it is being used to normalise the covariance, estimated
using `ma.cov`, which does not consider the observations for each
variable in a pairwise manner, rendering it unnecessary. The
normalisation has been replaced by the more appropriate standard
deviation for each variable, which significantly reduces the wall time,
but will return slightly different estimates of the correlation
coefficients in cases where the observations between a pair of variables
are not aligned. However, it will return the same estimates in all other
cases, including returning the same correlation matrix as `corrcoef`
when using a masked array with no masked values.

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

Cast-safety fixes in `copyto` and `full`

`copyto` now uses NEP 50 correctly and applies this to its cast safety.
Python integer to NumPy integer casts and Python float to NumPy float
casts are now considered \"safe\" even if assignment may fail or
precision may be lost. This means the following examples change
slightly:

-

`np.copyto(int8_arr, 1000)` previously performed an unsafe/same-kind cast

: of the Python integer. It will now always raise, to achieve an
unsafe cast you must pass an array or NumPy scalar.

- `np.copyto(uint8_arr, 1000, casting="safe")` will raise an
OverflowError rather than a TypeError due to same-kind casting.

- `np.copyto(float32_arr, 1e300, casting="safe")` will overflow to
`inf` (float32 cannot hold `1e300`) rather raising a TypeError.

Further, only the dtype is used when assigning NumPy scalars (or 0-d
arrays), meaning that the following behaves differently:

- `np.copyto(float32_arr, np.float64(3.0), casting="safe")` raises.
- `np.coptyo(int8_arr, np.int64(100), casting="safe")` raises.
Previously, NumPy checked whether the 100 fits the `int8_arr`.

This aligns `copyto`, `full`, and `full_like` with the correct NumPy 2
behavior.

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

Checksums

MD5

8ac48250d6b96fce749fbd0fcf464ff9 numpy-2.1.0rc1-cp310-cp310-macosx_10_9_x86_64.whl
13f92a9f7ed33d71ccfb742de0e3fec9 numpy-2.1.0rc1-cp310-cp310-macosx_11_0_arm64.whl
ba9286f6bd7a238eaead5ae2111d23a8 numpy-2.1.0rc1-cp310-cp310-macosx_14_0_arm64.whl
dc2b6c2f586090bc80268a81afec4c6f numpy-2.1.0rc1-cp310-cp310-macosx_14_0_x86_64.whl
16a13eb5dfad8008baf937026fa2db62 numpy-2.1.0rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
c5d5697af3047b8a3dc7a5d6ca86ec86 numpy-2.1.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0e48596167a215333f277ff29ea29c45 numpy-2.1.0rc1-cp310-cp310-musllinux_1_1_x86_64.whl
381957df326f45c0fba0b64a00a043ac numpy-2.1.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl
676fd27cea96af93142b4b420d9cb8af numpy-2.1.0rc1-cp310-cp310-win32.whl
b30bff4e8846c52e58fab9564b422ed2 numpy-2.1.0rc1-cp310-cp310-win_amd64.whl
4ee7c88591a445b3b5969999eeb7b0a7 numpy-2.1.0rc1-cp311-cp311-macosx_10_9_x86_64.whl
556393087caa0bb6eec1a76dfe2cad32 numpy-2.1.0rc1-cp311-cp311-macosx_14_0_arm64.whl
4e2b2eb39fc3a6ca28048588fc6a5338 numpy-2.1.0rc1-cp311-cp311-macosx_14_0_x86_64.whl
34f5ab41c4c6a3ecbf0cc0b108a63942 numpy-2.1.0rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
689944e33b04a11878aecaf59611341b numpy-2.1.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
5d2a53263c7daa9a3b9a89a4dc8ef3ac numpy-2.1.0rc1-cp311-cp311-musllinux_1_1_x86_64.whl
29e27f96f56d0d1b59f9b261ed6fe438 numpy-2.1.0rc1-cp311-cp311-musllinux_1_2_aarch64.whl
f07177a3b6779e6747137e2173a545de numpy-2.1.0rc1-cp311-cp311-win32.whl
f2d1f68c8c0455cba32be4aa50f5afed numpy-2.1.0rc1-cp311-cp311-win_amd64.whl
8500240d88e6e3afc281c562af083fd7 numpy-2.1.0rc1-cp312-cp312-macosx_10_9_x86_64.whl
3280b4ad3a5ceb814d739a9c980d16d6 numpy-2.1.0rc1-cp312-cp312-macosx_11_0_arm64.whl
77a6339def5185efa262658c51d6e44e numpy-2.1.0rc1-cp312-cp312-macosx_14_0_arm64.whl
2e3a71b9ef1e60ce37949af87475f5f7 numpy-2.1.0rc1-cp312-cp312-macosx_14_0_x86_64.whl
3c1877cd6108cb502ac1df39cfec86d0 numpy-2.1.0rc1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
ae1a9945726e7d970ee0b6232d5d9b4d numpy-2.1.0rc1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
f1a71557d35d8b2f87f277e85c958b2b numpy-2.1.0rc1-cp312-cp312-musllinux_1_1_x86_64.whl
b1ba7049684a7d674c006325b4606dd1 numpy-2.1.0rc1-cp312-cp312-musllinux_1_2_aarch64.whl
5944d81459d443a72346e7ea767b72a2 numpy-2.1.0rc1-cp312-cp312-win32.whl
f8b17b8f9bddb1c21844ae2475f72389 numpy-2.1.0rc1-cp312-cp312-win_amd64.whl
084ecd080c6871ed034ef69cda7573de numpy-2.1.0rc1-cp313-cp313-macosx_10_13_x86_64.whl
dbeca273db0240ca7fe395611f0c23c8 numpy-2.1.0rc1-cp313-cp313-macosx_11_0_arm64.whl
242794f34818844e0fe695ec42c62dbe numpy-2.1.0rc1-cp313-cp313-macosx_14_0_arm64.whl
3f1c04457ce363250ac5d37935172527 numpy-2.1.0rc1-cp313-cp313-macosx_14_0_x86_64.whl
2ce171281092e5f5d9f3d1ce8a615a94 numpy-2.1.0rc1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
95416f883c14a10fca22007594c94a94 numpy-2.1.0rc1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
36c07d317516f84cb376cc475b3ed13d numpy-2.1.0rc1-cp313-cp313-musllinux_1_1_x86_64.whl
e7c1f9c2964e4d71878a1654194452b2 numpy-2.1.0rc1-cp313-cp313-musllinux_1_2_aarch64.whl
ea27f5a8b6dfa219b630aee52e621c8c numpy-2.1.0rc1-cp313-cp313-win32.whl
1821d7e0980f297296509090cfd9c288 numpy-2.1.0rc1-cp313-cp313-win_amd64.whl
1b7f8160179aef59822e3eb43cb8a210 numpy-2.1.0rc1-cp313-cp313t-macosx_10_13_x86_64.whl
fed8d00d6819c467ef97e0b7611624cd numpy-2.1.0rc1-cp313-cp313t-macosx_11_0_arm64.whl
f58df469b6ec5e1755b1572702b56716 numpy-2.1.0rc1-cp313-cp313t-macosx_14_0_arm64.whl
fe13066a540c68598b1180bec61e8e30 numpy-2.1.0rc1-cp313-cp313t-macosx_14_0_x86_64.whl
67d51902daf5bc9de69c6e46dfea9a64 numpy-2.1.0rc1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
8409acd1916df8f8630260207a5b4eec numpy-2.1.0rc1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e64a5ccac64641cbbbd2caa652ff815a numpy-2.1.0rc1-cp313-cp313t-musllinux_1_1_x86_64.whl
488776d734d4eddc9c1540bf862106bb numpy-2.1.0rc1-cp313-cp313t-musllinux_1_2_aarch64.whl
fbc57a82683e2c9697a6992290ebe337 numpy-2.1.0rc1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
ed26d5d79acc222e107900668edcd01f numpy-2.1.0rc1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl
c29f8c6a55c1ac9e5c693f63ec17f251 numpy-2.1.0rc1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
4beab0a7bde06687f699e75cd04ec024 numpy-2.1.0rc1-pp310-pypy310_pp73-win_amd64.whl
88e72b72f2859ff084eb3863fac3ac20 numpy-2.1.0rc1.tar.gz

SHA256

590acae9e4b0baa895850c0edab988c329a196bacc7326f3249fa5fe7b94e5a8 numpy-2.1.0rc1-cp310-cp310-macosx_10_9_x86_64.whl
61cf71f62033987ed49b78a19465f40fcbf6f7e94674eda21096ebde6935c2e0 numpy-2.1.0rc1-cp310-cp310-macosx_11_0_arm64.whl
0c489f6c47bbed44918c9c8036a679614920da2a45f481d0eca2ad168ca5327f numpy-2.1.0rc1-cp310-cp310-macosx_14_0_arm64.whl
4c33387be8eadc07d0834e0b9e2ead53117fe76ab2dadd37ee80d1df80be4c05 numpy-2.1.0rc1-cp310-cp310-macosx_14_0_x86_64.whl
f412923d4ce1ec29aa3cf7752598e5eb154f549cfbf62d7c6f3cc76cb25b32e0 numpy-2.1.0rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
06156c55771da4952a2432aa457cd96159675dcab4336f5307bff042535cb6ea numpy-2.1.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
be3ddd26a22d032914cfca5ef7db74f31adbd6c9d88a6f4e21ebd8e057d9474c numpy-2.1.0rc1-cp310-cp310-musllinux_1_1_x86_64.whl
12b38b0f3ddc1342863a6849f4fcb3f506e1d21179ebd34b7aa55a30cb50899f numpy-2.1.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl
17581a2080012afe603c43005c9d050570e54683dde0d395e3edb4fa9c25f328 numpy-2.1.0rc1-cp310-cp310-win32.whl
8ee3ab33c02a0bd7d219a184c9bc43811de373551529981035673ca2a1ba7b93 numpy-2.1.0rc1-cp310-cp310-win_amd64.whl
2d3d1e61191e408a11658a64e9f9bb61741ad28c160576c95dac9df6f74713b4 numpy-2.1.0rc1-cp311-cp311-macosx_10_9_x86_64.whl
4e08e733600647242a9046b6aff888e72fe8a846b00855e5136e7641b08d25d8 numpy-2.1.0rc1-cp311-cp311-macosx_14_0_arm64.whl
2b0e379a15c6b8eb69bb8170d10cfbb8a0dc9126b5402ee8860a2646f4111c3d numpy-2.1.0rc1-cp311-cp311-macosx_14_0_x86_64.whl
fea6d6939d9bf098d96c6d22bb3e4ff39f8eb3f0f26b52c8c69ba06845490095 numpy-2.1.0rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
9a6bdc19830703eee91e7eb2d671b165febefbf5eec6a4f163d1833d23be17af numpy-2.1.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
58a07f2947aa06ca03d922a86ac30e403ce8282cd15904606bac852bf29ea2ad numpy-2.1.0rc1-cp311-cp311-musllinux_1_1_x86_64.whl
1a4f960e2e5c1084cf6b1d15482a5556ecc122855d631a2395063ab703d62fdd numpy-2.1.0rc1-cp311-cp311-musllinux_1_2_aarch64.whl
f38fabd7b8d14fb7d63fbb2d07971d6edd518d2a43542c63c29164c901d2a758 numpy-2.1.0rc1-cp311-cp311-win32.whl
e82b8e0b88d493d4e882f18de30f679bf1197c82d8c799acb5fdb4068cadb945 numpy-2.1.0rc1-cp311-cp311-win_amd64.whl
dc2af0135139bbb26b1ea5bdc430e049edb745ae643cb898afb32549ce4801de numpy-2.1.0rc1-cp312-cp312-macosx_10_9_x86_64.whl
47f11bf152d8707217feb46e9662a8b1aa3554a8ee56b64d2aa99c3e9914f101 numpy-2.1.0rc1-cp312-cp312-macosx_11_0_arm64.whl
3b534c62b1887b4bfa80f633485f2a9338f5d46d720b6cc695d2ba8b38d98987 numpy-2.1.0rc1-cp312-cp312-macosx_14_0_arm64.whl
f4e07df8476545da7cf23f75811f4fc334b06fc50d8e945e897cfc00c8f89690 numpy-2.1.0rc1-cp312-cp312-macosx_14_0_x86_64.whl
c8458becc562ee35b30b5e53173933414cf42e56b3f4f3d80997bf0dda7308d1 numpy-2.1.0rc1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
524b5311d21741f0b3f48efcdd3442546be3b38507a4e3b0f5138e4340f5dee0 numpy-2.1.0rc1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
7bcb4f360dc9e29b4f5f9fb36b35b429e731373843ccf39a22105bd809ef3138 numpy-2.1.0rc1-cp312-cp312-musllinux_1_1_x86_64.whl
5821c9831fad20cd1a8621a9ed483322ca97a9da9832690a4050ffedcb3e766b numpy-2.1.0rc1-cp312-cp312-musllinux_1_2_aarch64.whl
1d9e0ddfb33a7a78fe92d49aaa2992a78ed5aff4cef7a21d8b1057cca075cc85 numpy-2.1.0rc1-cp312-cp312-win32.whl
86cc61c5479ed3b324011aa69484cae8f491b7f58dc0e54acf0894bdb4fae879 numpy-2.1.0rc1-cp312-cp312-win_amd64.whl
64e8de086d2e4dac41fa286412321469b4535677184e78cc78e5061b44f0e4bf numpy-2.1.0rc1-cp313-cp313-macosx_10_13_x86_64.whl
e74dc488a27b90f31ab307b4cf3f07a45bb78a0e91cfb36d69c6eced4f36089b numpy-2.1.0rc1-cp313-cp313-macosx_11_0_arm64.whl
f73e4fcf7455d3b734e6ecbafdbc12d3c1dd8f2146fd186e003ae1c8f00e5eed numpy-2.1.0rc1-cp313-cp313-macosx_14_0_arm64.whl
e5a64ac6016839fd906b3d7cc1f7ecb145c7d44a310234b6843f3b23b8ec0651 numpy-2.1.0rc1-cp313-cp313-macosx_14_0_x86_64.whl
ccc68ee27362f8d3516deecffa124d1488ae20347628e357264e7e66dbdaba08 numpy-2.1.0rc1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d3d59479b98cc364b8a08ddd854c7817b5c578a521b56af5a96b3a9db18cc9b7 numpy-2.1.0rc1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
15c6bde88f242747258cfee803f3161b7a2c1ffead0817e409d95444a79b4029 numpy-2.1.0rc1-cp313-cp313-musllinux_1_1_x86_64.whl
3e9276bff9a57100b53e5f9c44469baca1e58ec612e5143db568d69ec27b65ea numpy-2.1.0rc1-cp313-cp313-musllinux_1_2_aarch64.whl
53979581e6acdd75b7ce94e6d3b70994f9f8cf1021316d388a159f7f388bdc7f numpy-2.1.0rc1-cp313-cp313-win32.whl
ca195cd9d1d84b3498532968237774a6e06e2a4afe706b87172f1d033b95e230 numpy-2.1.0rc1-cp313-cp313-win_amd64.whl
77fa9826cbc7273e4bc3b7aa289b86936c942fe2c91bc35617c2417e14421592 numpy-2.1.0rc1-cp313-cp313t-macosx_10_13_x86_64.whl
140c5ce21f1eccb254e550c8431825cb716eb76e896202cffa7a0d2a843506da numpy-2.1.0rc1-cp313-cp313t-macosx_11_0_arm64.whl
713cb46d266514db773de52af677aa931cc896a4f5e52f494449c4ff53ce6051 numpy-2.1.0rc1-cp313-cp313t-macosx_14_0_arm64.whl
3f79d241e4833a2a570b6e6639d2114d497011e48a351798bba81fda51560ab7 numpy-2.1.0rc1-cp313-cp313t-macosx_14_0_x86_64.whl
48a724dbfad6f4933e2c8a22239980e1b5bc16868df3450cc4ebeb9522b7902f numpy-2.1.0rc1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
06d14d20b7e98c8c06bb62e56f2b64747dd10c422bb8adbf1e6dd82cd8442e12 numpy-2.1.0rc1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
98a1486861fa3c603a5a3ccd56fc45b9756372bb30f6fb559b898fc2fad82e0d numpy-2.1.0rc1-cp313-cp313t-musllinux_1_1_x86_64.whl
50b3dab872001b87052532bd4da3879fda856a2cf6c9418c19bfc94dc290e259 numpy-2.1.0rc1-cp313-cp313t-musllinux_1_2_aarch64.whl
14dea4f0d62ddd1a7f9d7b0003b35a537ac41a2b6205deec8c9c25a8e01748b4 numpy-2.1.0rc1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
4f9317da3aa64d0ee93950d3f319b3fe0169500e25c18223715cba39e89808bd numpy-2.1.0rc1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl
0a5a25ab780b8c29e443824abefc6ca79047ceeb889a6f76d7b1953649498e93 numpy-2.1.0rc1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0816fd52956e14551d8d71319d4b4fcfa1bcb21641f2c603f4eb64c65b1e1009 numpy-2.1.0rc1-pp310-pypy310_pp73-win_amd64.whl
dc7ce867d277aa74555c67b93ef2a6f78bd7bd73e6c2bbafeb96f8bccd05b9d9 numpy-2.1.0rc1.tar.gz

2.1.0rc1

2.0.2

discovered after the 2.0.1 release.

The Python versions supported by this release are 3.9-3.12.

Contributors

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

- Bruno Oliveira +
- Charles Harris
- Chris Sidebottom
- Christian Heimes +
- Christopher Sidebottom
- Mateusz Sokół
- Matti Picus
- Nathan Goldbaum
- Pieter Eendebak
- Raghuveer Devulapalli
- Ralf Gommers
- Sebastian Berg
- Yair Chuchem +

Pull requests merged

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

- [27000](https://github.com/numpy/numpy/pull/27000): REL: Prepare for the NumPy 2.0.1 release \[wheel build\]
- [27001](https://github.com/numpy/numpy/pull/27001): MAINT: prepare 2.0.x for further development
- [27021](https://github.com/numpy/numpy/pull/27021): BUG: cfuncs.py: fix crash when sys.stderr is not available
- [27022](https://github.com/numpy/numpy/pull/27022): DOC: Fix migration note for `alltrue` and `sometrue`
- [27061](https://github.com/numpy/numpy/pull/27061): BUG: use proper input and output descriptor in array_assign_subscript\...
- [27073](https://github.com/numpy/numpy/pull/27073): BUG: Mirror VQSORT_ENABLED logic in Quicksort
- [27074](https://github.com/numpy/numpy/pull/27074): BUG: Bump Highway to latest master
- [27077](https://github.com/numpy/numpy/pull/27077): BUG: Off by one in memory overlap check
- [27122](https://github.com/numpy/numpy/pull/27122): BUG: Use the new `npyv_loadable_stride_` functions for ldexp and\...
- [27126](https://github.com/numpy/numpy/pull/27126): BUG: Bump Highway to latest
- [27128](https://github.com/numpy/numpy/pull/27128): BUG: add missing error handling in public_dtype_api.c
- [27129](https://github.com/numpy/numpy/pull/27129): BUG: fix another cast setup in array_assign_subscript
- [27130](https://github.com/numpy/numpy/pull/27130): BUG: Fix building NumPy in FIPS mode
- [27131](https://github.com/numpy/numpy/pull/27131): BLD: update vendored Meson for cross-compilation patches
- [27146](https://github.com/numpy/numpy/pull/27146): MAINT: Scipy openblas 0.3.27.44.4
- [27151](https://github.com/numpy/numpy/pull/27151): BUG: Do not accidentally store dtype metadata in `np.save`
- [27195](https://github.com/numpy/numpy/pull/27195): REV: Revert undef I and document it
- [27213](https://github.com/numpy/numpy/pull/27213): BUG: Fix NPY_RAVEL_AXIS on backwards compatible NumPy 2 builds
- [27279](https://github.com/numpy/numpy/pull/27279): BUG: Fix array_equal for numeric and non-numeric scalar types

Checksums

MD5

ae4bc199b56d20305984b7465d6fbdf1 numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl
ecce0a682c2ccaaa14500b87ffb69f63 numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl
a94f34bec8a62dab95ce9883a87a82a6 numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl
a0a26dadf73264d31b7a6952b816d7c8 numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl
972f4366651a1a2ef00f630595104d15 numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6cffef937fe67a3879abefd3d2c40fb8 numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
3717a5deda20f465720717a1a7a293a6 numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl
e31136ecc97bb76b3cb7e86bfc9471ac numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl
9703a02ca6b63ca53f83660d089f4294 numpy-2.0.2-cp310-cp310-win32.whl
12c097ef2c7492282a5514b5c4b68784 numpy-2.0.2-cp310-cp310-win_amd64.whl
f11d11bfa3aaf371d2e7fa0160e3208b numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl
86fc67666fc6e27740fde7dacb19c484 numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl
5fd12e0dd7162ea9599c49bbb6e6730e numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl
a40f473db729ea10ae401ce71899120a numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl
36ea96e0be954896597543d726157eda numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
cfa726b6d5445687020fc4d4f7191e42 numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
dfb9a7b7fe218e931b0dfb885a8250d6 numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl
d8bf100186e6cd1b2f27eb617ba9e581 numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl
4fe937eba0fc4d28a65c0ba571c809fc numpy-2.0.2-cp311-cp311-win32.whl
a9a0f8e1bc4d825272514896e3b17f15 numpy-2.0.2-cp311-cp311-win_amd64.whl
5ef80ec3b2db487d89c590eb301a7aa4 numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl
1bb398d93422bb9baf63c958ed1aa492 numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
cc8d990a1ad3f4d66d0143ea709ccc99 numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl
4fee57e854bc3e9a267e865740438d53 numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl
c2c18eef5118607c0b023f6267ee9774 numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
2928ed26d7153a488bfb126424d86c8f numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e32167073981b0a1a419aaaec741773e numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl
80a10803a3122472c1bf6c4617d0d1c5 numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl
39724e27a003b6ce9b1bcbf251e50b4b numpy-2.0.2-cp312-cp312-win32.whl
8319d0b3d23285d4698cbece73b23fde numpy-2.0.2-cp312-cp312-win_amd64.whl
da0f655880bbcb53094816b77cd493d1 numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl
47347c028f6ccf47d6a22724111fc96f numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl
26a5c8dec993258522fcef84ef0c040e numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl
fe447af86983ef2262e605a941bd46af numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl
96477b8563e6d4e2db710f4915a4c5e0 numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
4e8255cdff60de62944aed1f4235ff68 numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
05d8465b87ca983eee044b66bc725391 numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl
dcf448ef80720bae7de6724f92499754 numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl
71557f67f24d39db709cc4ccb85ae5b5 numpy-2.0.2-cp39-cp39-win32.whl
f5dc31c5530037c4d1d990696b1d041c numpy-2.0.2-cp39-cp39-win_amd64.whl
a8f814da1a4509724346c14cd838b5dc numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
918f072481d014229dd5f0f5ba75306f numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl
fcbe2e38506fbbbeda509a89063563d3 numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b99eff795ca26f8a513aace76a45a356 numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl
d517a3be706295c4a4c8f75f5ee7b261 numpy-2.0.2.tar.gz

SHA256

51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl
f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04 numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl
8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66 numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl
becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl
2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318 numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8 numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl
d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326 numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl
984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97 numpy-2.0.2-cp310-cp310-win32.whl
c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131 numpy-2.0.2-cp310-cp310-win_amd64.whl
49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448 numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl
11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195 numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl
807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57 numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl
8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl
a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669 numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951 numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9 numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl
c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15 numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl
a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4 numpy-2.0.2-cp311-cp311-win32.whl
286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc numpy-2.0.2-cp311-cp311-win_amd64.whl
df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl
8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl
a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl
c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692 numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl
ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl
671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5 numpy-2.0.2-cp312-cp312-win32.whl
cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a numpy-2.0.2-cp312-cp312-win_amd64.whl
9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl
423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl
2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl
97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729 numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl
1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1 numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl
9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl
905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa numpy-2.0.2-cp39-cp39-win32.whl
a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73 numpy-2.0.2-cp39-cp39-win_amd64.whl
7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8 numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4 numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl
26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385 numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl
883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78 numpy-2.0.2.tar.gz

2.0.1

discovered after the 2.0.0 release. NumPy 2.0.1 is the last planned
release in the 2.0.x series, 2.1.0rc1 should be out shortly.

The Python versions supported by this release are 3.9-3.12.

**_NOTE:_** Do not use the GitHub generated "Source code" files listed in the "Assets", they are garbage.

Improvements

`np.quantile` with method `closest_observation` chooses nearest even order statistic

This changes the definition of nearest for border cases from the nearest
odd order statistic to nearest even order statistic. The numpy
implementation now matches other reference implementations.

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

Contributors

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

- \vahidmech +
- Alex Herbert +
- Charles Harris
- Giovanni Del Monte +
- Leo Singer
- Lysandros Nikolaou
- Matti Picus
- Nathan Goldbaum
- Patrick J. Roddy +
- Raghuveer Devulapalli
- Ralf Gommers
- Rostan Tabet +
- Sebastian Berg
- Tyler Reddy
- Yannik Wicke +

Pull requests merged

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

- [26711](https://github.com/numpy/numpy/pull/26711): MAINT: prepare 2.0.x for further development
- [26792](https://github.com/numpy/numpy/pull/26792): TYP: fix incorrect import in `ma/extras.pyi` stub
- [26793](https://github.com/numpy/numpy/pull/26793): DOC: Mention \'1.25\' legacy printing mode in `set_printoptions`
- [26794](https://github.com/numpy/numpy/pull/26794): DOC: Remove mention of NaN and NAN aliases from constants
- [26821](https://github.com/numpy/numpy/pull/26821): BLD: Fix x86-simd-sort build failure on openBSD
- [26822](https://github.com/numpy/numpy/pull/26822): BUG: Ensure output order follows input in numpy.fft
- [26823](https://github.com/numpy/numpy/pull/26823): TYP: fix missing sys import in numeric.pyi
- [26832](https://github.com/numpy/numpy/pull/26832): DOC: remove hack to override \_add_newdocs_scalars
- [26835](https://github.com/numpy/numpy/pull/26835): BUG: avoid side-effect of \'include complex.h\'
- [26836](https://github.com/numpy/numpy/pull/26836): BUG: fix max_rows and chunked string/datetime reading in `loadtxt`
- [26837](https://github.com/numpy/numpy/pull/26837): BUG: fix PyArray_ImportNumPyAPI under -Werror=strict-prototypes
- [26856](https://github.com/numpy/numpy/pull/26856): DOC: Update some documentation
- [26868](https://github.com/numpy/numpy/pull/26868): BUG: fancy indexing copy
- [26869](https://github.com/numpy/numpy/pull/26869): BUG: Mismatched allocation domains in `PyArray_FillWithScalar`
- [26870](https://github.com/numpy/numpy/pull/26870): BUG: Handle \--f77flags and \--f90flags for meson \[wheel build\]
- [26887](https://github.com/numpy/numpy/pull/26887): BUG: Fix new DTypes and new string promotion when signature is\...
- [26888](https://github.com/numpy/numpy/pull/26888): BUG: remove numpy.f2py from excludedimports
- [26959](https://github.com/numpy/numpy/pull/26959): BUG: Quantile closest_observation to round to nearest even order
- [26960](https://github.com/numpy/numpy/pull/26960): BUG: Fix off-by-one error in amount of characters in strip
- [26961](https://github.com/numpy/numpy/pull/26961): API: Partially revert unique with return_inverse
- [26962](https://github.com/numpy/numpy/pull/26962): BUG,MAINT: Fix utf-8 character stripping memory access
- [26963](https://github.com/numpy/numpy/pull/26963): BUG: Fix out-of-bound minimum offset for in1d table method
- [26971](https://github.com/numpy/numpy/pull/26971): BUG: fix f2py tests to work with v2 API
- [26995](https://github.com/numpy/numpy/pull/26995): BUG: Add object cast to avoid warning with limited API

Checksums

MD5

a3e7d0f361ee7302448cae3c10844dd3 numpy-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl
cff8546b69e43ae7b5050f05bdc25df2 numpy-2.0.1-cp310-cp310-macosx_11_0_arm64.whl
1713d23342528f4f8f4027970f010068 numpy-2.0.1-cp310-cp310-macosx_14_0_arm64.whl
20020d28606ea58f986a262daa6018f1 numpy-2.0.1-cp310-cp310-macosx_14_0_x86_64.whl
db22154ea943a707917aebc79e449bc5 numpy-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
fe86cd85f240216f64eb076a62a229d2 numpy-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e0ca08f85150af3cc6050d64e8c0bd27 numpy-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl
b76f432906f62e31f0e09c41f3f08b4c numpy-2.0.1-cp310-cp310-musllinux_1_2_aarch64.whl
28e8109e4ef524fa5c272d6faec870ae numpy-2.0.1-cp310-cp310-win32.whl
874beffaefdc73da42300ce691c2419c numpy-2.0.1-cp310-cp310-win_amd64.whl
7bbe029f650c924e952da117842d456d numpy-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl
6d3d6ae26c520e93cef7f11ba3951f57 numpy-2.0.1-cp311-cp311-macosx_11_0_arm64.whl
de6082d719437eb7468ae31c407c503e numpy-2.0.1-cp311-cp311-macosx_14_0_arm64.whl
d15a8d95661f8a1dfcc4eb089f9b46e8 numpy-2.0.1-cp311-cp311-macosx_14_0_x86_64.whl
c181105e074ee575ccf2c992e40f947a numpy-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
00d22b299343fcdc78fbb0716ead6243 numpy-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
d9c4f49dbedb3f3d0158f00db459bd25 numpy-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl
63caa03e0625327ad3a756e01c83a6ca numpy-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl
99d01d768a115d448ca2b4680de15191 numpy-2.0.1-cp311-cp311-win32.whl
8d1a31eccc8b9f077312095b11f62cb2 numpy-2.0.1-cp311-cp311-win_amd64.whl
6cc86f7761a33941d8c1c552186e774b numpy-2.0.1-cp312-cp312-macosx_10_9_x86_64.whl
67c48f352afff5f41108f1b9561d1d5c numpy-2.0.1-cp312-cp312-macosx_11_0_arm64.whl
1068d4eadcac6a869e0e457853b7e611 numpy-2.0.1-cp312-cp312-macosx_14_0_arm64.whl
dfb667450315fddcf84381fc8ef16892 numpy-2.0.1-cp312-cp312-macosx_14_0_x86_64.whl
69822bbbbb65d8a7d00ae32b435f61cc numpy-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
883ed6c41395fb2def6cc0d64dcb817f numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
4b1e9fd464821a7d1de3a8ddf911311e numpy-2.0.1-cp312-cp312-musllinux_1_1_x86_64.whl
79e6557f40b8ed8f5973b404d98eab3d numpy-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl
85596f15d4cf85c2f78b4cc12c2cad1e numpy-2.0.1-cp312-cp312-win32.whl
487c7c2944306f62b3770576ce903a91 numpy-2.0.1-cp312-cp312-win_amd64.whl
491093641afa21e65d6e629eb70571fc numpy-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl
5008b16c20f3d7e5a0c7764712f8908e numpy-2.0.1-cp39-cp39-macosx_11_0_arm64.whl
14633b898f863ea797c40ba1cf226c29 numpy-2.0.1-cp39-cp39-macosx_14_0_arm64.whl
9054ecb69d21b364e59e94aab24247cb numpy-2.0.1-cp39-cp39-macosx_14_0_x86_64.whl
be028cf4bb691921943939de17593dd7 numpy-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
9c440ad02ff0a954f696637de37aab2d numpy-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
27aec0d286eabe26d8e9149f4572dba1 numpy-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl
b02eda82ee511ee27185c8a4073ea35c numpy-2.0.1-cp39-cp39-musllinux_1_2_aarch64.whl
cf579b902325e023b2dc444692eb5991 numpy-2.0.1-cp39-cp39-win32.whl
302c8c3118a5f55d9ef35ed8e517f6b1 numpy-2.0.1-cp39-cp39-win_amd64.whl
34c17fe980accfb76c6f348f85b3cfef numpy-2.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
02676eb84379b0a223288d6fd9d76942 numpy-2.0.1-pp39-pypy39_pp73-macosx_14_0_x86_64.whl
b5300e6fe110bf69e1a8901c5c09e3f8 numpy-2.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
204a3ea7fb851e08d166c74f73f9b8a3 numpy-2.0.1-pp39-pypy39_pp73-win_amd64.whl
5df3c50fc124c3167404d396115898d0 numpy-2.0.1.tar.gz

SHA256

0fbb536eac80e27a2793ffd787895242b7f18ef792563d742c2d673bfcb75134 numpy-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl
69ff563d43c69b1baba77af455dd0a839df8d25e8590e79c90fcbe1499ebde42 numpy-2.0.1-cp310-cp310-macosx_11_0_arm64.whl
1b902ce0e0a5bb7704556a217c4f63a7974f8f43e090aff03fcf262e0b135e02 numpy-2.0.1-cp310-cp310-macosx_14_0_arm64.whl
f1659887361a7151f89e79b276ed8dff3d75877df906328f14d8bb40bb4f5101 numpy-2.0.1-cp310-cp310-macosx_14_0_x86_64.whl
4658c398d65d1b25e1760de3157011a80375da861709abd7cef3bad65d6543f9 numpy-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
4127d4303b9ac9f94ca0441138acead39928938660ca58329fe156f84b9f3015 numpy-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e5eeca8067ad04bc8a2a8731183d51d7cbaac66d86085d5f4766ee6bf19c7f87 numpy-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl
9adbd9bb520c866e1bfd7e10e1880a1f7749f1f6e5017686a5fbb9b72cf69f82 numpy-2.0.1-cp310-cp310-musllinux_1_2_aarch64.whl
7b9853803278db3bdcc6cd5beca37815b133e9e77ff3d4733c247414e78eb8d1 numpy-2.0.1-cp310-cp310-win32.whl
81b0893a39bc5b865b8bf89e9ad7807e16717f19868e9d234bdaf9b1f1393868 numpy-2.0.1-cp310-cp310-win_amd64.whl
75b4e316c5902d8163ef9d423b1c3f2f6252226d1aa5cd8a0a03a7d01ffc6268 numpy-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl
6e4eeb6eb2fced786e32e6d8df9e755ce5be920d17f7ce00bc38fcde8ccdbf9e numpy-2.0.1-cp311-cp311-macosx_11_0_arm64.whl
a1e01dcaab205fbece13c1410253a9eea1b1c9b61d237b6fa59bcc46e8e89343 numpy-2.0.1-cp311-cp311-macosx_14_0_arm64.whl
a8fc2de81ad835d999113ddf87d1ea2b0f4704cbd947c948d2f5513deafe5a7b numpy-2.0.1-cp311-cp311-macosx_14_0_x86_64.whl
5a3d94942c331dd4e0e1147f7a8699a4aa47dffc11bf8a1523c12af8b2e91bbe numpy-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
15eb4eca47d36ec3f78cde0a3a2ee24cf05ca7396ef808dda2c0ddad7c2bde67 numpy-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b83e16a5511d1b1f8a88cbabb1a6f6a499f82c062a4251892d9ad5d609863fb7 numpy-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl
1f87fec1f9bc1efd23f4227becff04bd0e979e23ca50cc92ec88b38489db3b55 numpy-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl
36d3a9405fd7c511804dc56fc32974fa5533bdeb3cd1604d6b8ff1d292b819c4 numpy-2.0.1-cp311-cp311-win32.whl
08458fbf403bff5e2b45f08eda195d4b0c9b35682311da5a5a0a0925b11b9bd8 numpy-2.0.1-cp311-cp311-win_amd64.whl
6bf4e6f4a2a2e26655717a1983ef6324f2664d7011f6ef7482e8c0b3d51e82ac numpy-2.0.1-cp312-cp312-macosx_10_9_x86_64.whl
7d6fddc5fe258d3328cd8e3d7d3e02234c5d70e01ebe377a6ab92adb14039cb4 numpy-2.0.1-cp312-cp312-macosx_11_0_arm64.whl
5daab361be6ddeb299a918a7c0864fa8618af66019138263247af405018b04e1 numpy-2.0.1-cp312-cp312-macosx_14_0_arm64.whl
ea2326a4dca88e4a274ba3a4405eb6c6467d3ffbd8c7d38632502eaae3820587 numpy-2.0.1-cp312-cp312-macosx_14_0_x86_64.whl
529af13c5f4b7a932fb0e1911d3a75da204eff023ee5e0e79c1751564221a5c8 numpy-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
6790654cb13eab303d8402354fabd47472b24635700f631f041bd0b65e37298a numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cbab9fc9c391700e3e1287666dfd82d8666d10e69a6c4a09ab97574c0b7ee0a7 numpy-2.0.1-cp312-cp312-musllinux_1_1_x86_64.whl
99d0d92a5e3613c33a5f01db206a33f8fdf3d71f2912b0de1739894668b7a93b numpy-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl
173a00b9995f73b79eb0191129f2455f1e34c203f559dd118636858cc452a1bf numpy-2.0.1-cp312-cp312-win32.whl
bb2124fdc6e62baae159ebcfa368708867eb56806804d005860b6007388df171 numpy-2.0.1-cp312-cp312-win_amd64.whl
bfc085b28d62ff4009364e7ca34b80a9a080cbd97c2c0630bb5f7f770dae9414 numpy-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl
8fae4ebbf95a179c1156fab0b142b74e4ba4204c87bde8d3d8b6f9c34c5825ef numpy-2.0.1-cp39-cp39-macosx_11_0_arm64.whl
72dc22e9ec8f6eaa206deb1b1355eb2e253899d7347f5e2fae5f0af613741d06 numpy-2.0.1-cp39-cp39-macosx_14_0_arm64.whl
ec87f5f8aca726117a1c9b7083e7656a9d0d606eec7299cc067bb83d26f16e0c numpy-2.0.1-cp39-cp39-macosx_14_0_x86_64.whl
1f682ea61a88479d9498bf2091fdcd722b090724b08b31d63e022adc063bad59 numpy-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
8efc84f01c1cd7e34b3fb310183e72fcdf55293ee736d679b6d35b35d80bba26 numpy-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
3fdabe3e2a52bc4eff8dc7a5044342f8bd9f11ef0934fcd3289a788c0eb10018 numpy-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl
24a0e1befbfa14615b49ba9659d3d8818a0f4d8a1c5822af8696706fbda7310c numpy-2.0.1-cp39-cp39-musllinux_1_2_aarch64.whl
f9cf5ea551aec449206954b075db819f52adc1638d46a6738253a712d553c7b4 numpy-2.0.1-cp39-cp39-win32.whl
e9e81fa9017eaa416c056e5d9e71be93d05e2c3c2ab308d23307a8bc4443c368 numpy-2.0.1-cp39-cp39-win_amd64.whl
61728fba1e464f789b11deb78a57805c70b2ed02343560456190d0501ba37b0f numpy-2.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
12f5d865d60fb9734e60a60f1d5afa6d962d8d4467c120a1c0cda6eb2964437d numpy-2.0.1-pp39-pypy39_pp73-macosx_14_0_x86_64.whl
eacf3291e263d5a67d8c1a581a8ebbcfd6447204ef58828caf69a5e3e8c75990 numpy-2.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
2c3a346ae20cfd80b6cfd3e60dc179963ef2ea58da5ec074fd3d9e7a1e7ba97f numpy-2.0.1-pp39-pypy39_pp73-win_amd64.whl
485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3 numpy-2.0.1.tar.gz

2.0

- `npy_interrupt.h` and the corresponding macros like `NPY_SIGINT_ON`
have been removed. We recommend querying `PyErr_CheckSignals()` or
`PyOS_InterruptOccurred()` periodically (these do currently require
holding the GIL though).

- The `noprefix.h` header has been removed. Replace missing symbols
with their prefixed counterparts (usually an added `NPY_` or
`npy_`).

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

- `PyUFunc_GetPyVals`, `PyUFunc_handlefperr`, and `PyUFunc_checkfperr`
have been removed. If needed, a new backwards compatible function to
raise floating point errors could be restored. Reason for removal:
there are no known users and the functions would have made
`with np.errstate()` fixes much more difficult).

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

- The `numpy/old_defines.h` which was part of the API deprecated since
NumPy 1.7 has been removed. This removes macros of the form
`PyArray_CONSTANT`. The
[replace_old_macros.sed](https://github.com/numpy/numpy/blob/main/tools/replace_old_macros.sed)
script may be useful to convert them to the `NPY_CONSTANT` version.

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

- The `legacy_inner_loop_selector` member of the ufunc struct is
removed to simplify improvements to the dispatching system. There
are no known users overriding or directly accessing this member.

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

- `NPY_INTPLTR` has been removed to avoid confusion (see `intp`
redefinition).

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

- The advanced indexing `MapIter` and related API has been removed.
The (truly) public part of it was not well tested and had only one
known user (Theano). Making it private will simplify improvements to
speed up `ufunc.at`, make advanced indexing more maintainable, and
was important for increasing the maximum number of dimensions of
arrays to 64. Please let us know if this API is important to you so
we can find a solution together.

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

- The `NPY_MAX_ELSIZE` macro has been removed, as it only ever
reflected builtin numeric types and served no internal purpose.

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

- `PyArray_REFCNT` and `NPY_REFCOUNT` are removed. Use `Py_REFCNT`
instead.

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

- `PyArrayFlags_Type` and `PyArray_NewFlagsObject` as well as
`PyArrayFlagsObject` are private now. There is no known use-case;
use the Python API if needed.

- `PyArray_MoveInto`, `PyArray_CastTo`, `PyArray_CastAnyTo` are
removed use `PyArray_CopyInto` and if absolutely needed
`PyArray_CopyAnyInto` (the latter does a flat copy).

- `PyArray_FillObjectArray` is removed, its only true use was for
implementing `np.empty`. Create a new empty array or use
`PyArray_FillWithScalar()` (decrefs existing objects).

- `PyArray_CompareUCS4` and `PyArray_CompareString` are removed. Use
the standard C string comparison functions.

- `PyArray_ISPYTHON` is removed as it is misleading, has no known
use-cases, and is easy to replace.

- `PyArray_FieldNames` is removed, as it is unclear what it would be
useful for. It also has incorrect semantics in some possible
use-cases.

- `PyArray_TypestrConvert` is removed, since it seems a misnomer and
unlikely to be used by anyone. If you know the size or are limited
to few types, just use it explicitly, otherwise go via Python
strings.

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

- `PyDataType_GetDatetimeMetaData` is removed, it did not actually do
anything since at least NumPy 1.7.

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

- `PyArray_GetCastFunc` is removed. Note that custom legacy user
dtypes can still provide a castfunc as their implementation, but any
access to them is now removed. The reason for this is that NumPy
never used these internally for many years. If you use simple
numeric types, please just use C casts directly. In case you require
an alternative, please let us know so we can create new API such as
`PyArray_CastBuffer()` which could use old or new cast functions
depending on the NumPy version.

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

New Features

`np.add` was extended to work with `unicode` and `bytes` dtypes.

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

A new `bitwise_count` function

This new function counts the number of 1-bits in a number.
`numpy.bitwise_count` works on all the numpy integer types
and integer-like objects.

python
>>> a = np.array([2**i - 1 for i in range(16)])
>>> np.bitwise_count(a)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
dtype=uint8)


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

macOS Accelerate support, including the ILP64

Support for the updated Accelerate BLAS/LAPACK library, including ILP64
(64-bit integer) support, in macOS 13.3 has been added. This brings
arm64 support, and significant performance improvements of up to 10x for
commonly used linear algebra operations. When Accelerate is selected at
build time, or if no explicit BLAS library selection is done, the 13.3+
version will automatically be used if available.

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

Binary wheels are also available. On macOS \>=14.0, users who install
NumPy from PyPI will get wheels built against Accelerate rather than
OpenBLAS.

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

Option to use weights for quantile and percentile functions

A `weights` keyword is now available for `numpy.quantile`, `numpy.percentile`,
`numpy.nanquantile` and `numpy.nanpercentile`. Only `method="inverted_cdf"`
supports weights.

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

Improved CPU optimization tracking

A new tracer mechanism is available which enables tracking of the
enabled targets for each optimized function (i.e., that uses
hardware-specific SIMD instructions) in the NumPy library. With this
enhancement, it becomes possible to precisely monitor the enabled CPU
dispatch targets for the dispatched functions.

A new function named `opt_func_info` has been added to the new namespace
`numpy.lib.introspect`, offering this tracing capability. This function allows
you to retrieve information about the enabled targets based on function names
and data type signatures.

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

A new Meson backend for `f2py`

`f2py` in compile mode (i.e. `f2py -c`) now accepts the
`--backend meson` option. This is the default option for Python \>=3.12.
For older Python versions, `f2py` will still default to
`--backend distutils`.

To support this in realistic use-cases, in compile mode `f2py` takes a
`--dep` flag one or many times which maps to `dependency()` calls in the
`meson` backend, and does nothing in the `distutils` backend.

There are no changes for users of `f2py` only as a code generator, i.e.
without `-c`.

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

`bind(c)` support for `f2py`

Both functions and subroutines can be annotated with `bind(c)`. `f2py`
will handle both the correct type mapping, and preserve the unique label
for other C interfaces.

**Note:** `bind(c, name = 'routine_name_other_than_fortran_routine')` is
not honored by the `f2py` bindings by design, since `bind(c)` with the
`name` is meant to guarantee only the same name in C and Fortran, not in
Python and Fortran.

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

A new `strict` option for several testing functions

The `strict` keyword is now available for `numpy.testing.assert_allclose`,
`numpy.testing.assert_equal`, and `numpy.testing.assert_array_less`. Setting
`strict=True` will disable the broadcasting behaviour for scalars and ensure
that input arrays have the same data type.

([gh-24680](https://github.com/numpy/numpy/pull/24680),
[gh-24770](https://github.com/numpy/numpy/pull/24770),
[gh-24775](https://github.com/numpy/numpy/pull/24775))

Add `np.core.umath.find` and `np.core.umath.rfind` UFuncs

Add two `find` and `rfind` UFuncs that operate on unicode or byte
strings and are used in `np.char`. They operate similar to `str.find`
and `str.rfind`.

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

`diagonal` and `trace` for `numpy.linalg`

`numpy.linalg.diagonal` and `numpy.linalg.trace` have been added, which are
array API standard-compatible variants of `numpy.diagonal` and `numpy.trace`.
They differ in the default axis selection which define 2-D sub-arrays.

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

New `long` and `ulong` dtypes

`numpy.long` and `numpy.ulong` have been added as NumPy integers mapping to
C\'s `long` and `unsigned long`. Prior to NumPy 1.24, `numpy.long` was an alias
to Python\'s `int`.

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

`svdvals` for `numpy.linalg`

`numpy.linalg.svdvals` has been added. It computes singular values for (a stack
of) matrices. Executing `np.svdvals(x)` is the same as calling `np.svd(x,
compute_uv=False, hermitian=False)`. This function is compatible with the array
API standard.

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

A new `isdtype` function

`numpy.isdtype` was added to provide a canonical way to classify NumPy\'s
dtypes in compliance with the array API standard.

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

A new `astype` function

`numpy.astype` was added to provide an array API standard-compatible
alternative to the `numpy.ndarray.astype` method.

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

Array API compatible functions\' aliases

13 aliases for existing functions were added to improve compatibility
with the array API standard:

- Trigonometry: `acos`, `acosh`, `asin`, `asinh`, `atan`, `atanh`,
`atan2`.
- Bitwise: `bitwise_left_shift`, `bitwise_invert`,
`bitwise_right_shift`.
- Misc: `concat`, `permute_dims`, `pow`.
- In `numpy.linalg`: `tensordot`, `matmul`.

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

New `unique_*` functions

The `numpy.unique_all`, `numpy.unique_counts`, `numpy.unique_inverse`, and
`numpy.unique_values` functions have been added. They provide functionality of
`numpy.unique` with different sets of flags. They are array API
standard-compatible, and because the number of arrays they return does not
depend on the values of input arguments, they are easier to target for JIT
compilation.

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

Matrix transpose support for ndarrays

NumPy now offers support for calculating the matrix transpose of an
array (or stack of arrays). The matrix transpose is equivalent to
swapping the last two axes of an array. Both `np.ndarray` and
`np.ma.MaskedArray` now expose a `.mT` attribute, and there is a
matching new `numpy.matrix_transpose` function.

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

Array API compatible functions for `numpy.linalg`

Six new functions and two aliases were added to improve compatibility
with the Array API standard for \`numpy.linalg\`:

- `numpy.linalg.matrix_norm` - Computes the matrix norm of
a matrix (or a stack of matrices).

- `numpy.linalg.vector_norm` - Computes the vector norm of
a vector (or batch of vectors).

- `numpy.vecdot` - Computes the (vector) dot product of
two arrays.

- `numpy.linalg.vecdot` - An alias for
`numpy.vecdot`.

- `numpy.linalg.matrix_transpose` - An alias for
`numpy.matrix_transpose`.

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

- `numpy.linalg.outer` has been added. It computes the
outer product of two vectors. It differs from
`numpy.outer` by accepting one-dimensional arrays only.
This function is compatible with the array API standard.

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

- `numpy.linalg.cross` has been added. It computes the
cross product of two (arrays of) 3-dimensional vectors. It differs
from `numpy.cross` by accepting three-dimensional
vectors only. This function is compatible with the array API
standard.

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

A `correction` argument for `var` and `std`

A `correction` argument was added to `numpy.var` and `numpy.std`, which is an
array API standard compatible alternative to `ddof`. As both arguments serve a
similar purpose, only one of them can be provided at the same time.

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

`ndarray.device` and `ndarray.to_device`

An `ndarray.device` attribute and `ndarray.to_device` method were added
to `numpy.ndarray` for array API standard compatibility.

Additionally, `device` keyword-only arguments were added to:
`numpy.asarray`, `numpy.arange`, `numpy.empty`, `numpy.empty_like`,
`numpy.eye`, `numpy.full`, `numpy.full_like`, `numpy.linspace`, `numpy.ones`,
`numpy.ones_like`, `numpy.zeros`, and `numpy.zeros_like`.

For all these new arguments, only `device="cpu"` is supported.

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

StringDType has been added to NumPy

We have added a new variable-width UTF-8 encoded string data type, implementing
a \"NumPy array of Python strings\", including support for a user-provided
missing data sentinel. It is intended as a drop-in replacement for arrays of
Python strings and missing data sentinels using the object dtype. See
[NEP 55](https://numpy.org/neps/nep-0055-string_dtype.html) and the documentation
of stringdtype for more details.

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

New keywords for `cholesky` and `pinv`

The `upper` and `rtol` keywords were added to
`numpy.linalg.cholesky` and `numpy.linalg.pinv`,
respectively, to improve array API standard compatibility.

For `numpy.linalg.pinv`, if neither `rcond` nor `rtol` is
specified, the `rcond`\'s default is used. We plan to deprecate and
remove `rcond` in the future.

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

New keywords for `sort`, `argsort` and `linalg.matrix_rank`

New keyword parameters were added to improve array API standard
compatibility:

- `rtol` was added to `numpy.linalg.matrix_rank`.
- `stable` was added to `numpy.sort` and
`numpy.argsort`.

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

New `numpy.strings` namespace for string ufuncs

NumPy now implements some string operations as ufuncs. The old `np.char`
namespace is still available, and where possible the string manipulation
functions in that namespace have been updated to use the new ufuncs,
substantially improving their performance.

Where possible, we suggest updating code to use functions in
`np.strings` instead of `np.char`. In the future we may deprecate
`np.char` in favor of `np.strings`.

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

`numpy.fft` support for different precisions and in-place calculations

The various FFT routines in `numpy.fft` now do their
calculations natively in float, double, or long double precision,
depending on the input precision, instead of always calculating in
double precision. Hence, the calculation will now be less precise for
single and more precise for long double precision. The data type of the
output array will now be adjusted accordingly.

Furthermore, all FFT routines have gained an `out` argument that can be
used for in-place calculations.

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

configtool and pkg-config support

A new `numpy-config` CLI script is available that can be queried for the
NumPy version and for compile flags needed to use the NumPy C API. This
will allow build systems to better support the use of NumPy as a
dependency. Also, a `numpy.pc` pkg-config file is now included with
Numpy. In order to find its location for use with `PKG_CONFIG_PATH`, use
`numpy-config --pkgconfigdir`.

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

Array API standard support in the main namespace

The main `numpy` namespace now supports the array API standard. See
`array-api-standard-compatibility` for
details.

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

Improvements

Strings are now supported by `any`, `all`, and the logical ufuncs.

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

Integer sequences as the shape argument for `memmap`

`numpy.memmap` can now be created with any integer sequence
as the `shape` argument, such as a list or numpy array of integers.
Previously, only the types of tuple and int could be used without
raising an error.

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

`errstate` is now faster and context safe

The `numpy.errstate` context manager/decorator is now faster
and safer. Previously, it was not context safe and had (rare) issues
with thread-safety.

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

AArch64 quicksort speed improved by using Highway\'s VQSort

The first introduction of the Google Highway library, using VQSort on
AArch64. Execution time is improved by up to 16x in some cases, see the
PR for benchmark results. Extensions to other platforms will be done in
the future.

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

Complex types - underlying C type changes

- The underlying C types for all of NumPy\'s complex types have been
changed to use C99 complex types.

- While this change does not affect the memory layout of complex
types, it changes the API to be used to directly retrieve or write
the real or complex part of the complex number, since direct field
access (as in `c.real` or `c.imag`) is no longer an option. You can
now use utilities provided in `numpy/npy_math.h` to do these
operations, like this:

c
npy_cdouble c;
npy_csetreal(&c, 1.0);
npy_csetimag(&c, 0.0);
printf("%d + %di\n", npy_creal(c), npy_cimag(c));


- To ease cross-version compatibility, equivalent macros and a
compatibility layer have been added which can be used by downstream
packages to continue to support both NumPy 1.x and 2.x. See
`complex-numbers` for more info.

- `numpy/npy_common.h` now includes `complex.h`, which means that
`complex` is now a reserved keyword.

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

`iso_c_binding` support and improved common blocks for `f2py`

Previously, users would have to define their own custom `f2cmap` file to
use type mappings defined by the Fortran2003 `iso_c_binding` intrinsic
module. These type maps are now natively supported by `f2py`

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

`f2py` now handles `common` blocks which have `kind` specifications from
modules. This further expands the usability of intrinsics like
`iso_fortran_env` and `iso_c_binding`.

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

Call `str` automatically on third argument to functions like `assert_equal`

The third argument to functions like
`numpy.testing.assert_equal` now has `str` called on it
automatically. This way it mimics the built-in `assert` statement, where
`assert_equal(a, b, obj)` works like `assert a == b, obj`.

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

Support for array-like `atol`/`rtol` in `isclose`, `allclose`

The keywords `atol` and `rtol` in `numpy.isclose` and
`numpy.allclose` now accept both scalars and arrays. An
array, if given, must broadcast to the shapes of the first two array
arguments.

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

Consistent failure messages in test functions

Previously, some `numpy.testing` assertions printed messages
that referred to the actual and desired results as `x` and `y`. Now,
these values are consistently referred to as `ACTUAL` and `DESIRED`.

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

n-D FFT transforms allow `s[i] == -1`

The `numpy.fft.fftn`, `numpy.fft.ifftn`,
`numpy.fft.rfftn`, `numpy.fft.irfftn`,
`numpy.fft.fft2`, `numpy.fft.ifft2`,
`numpy.fft.rfft2` and `numpy.fft.irfft2`
functions now use the whole input array along the axis `i` if
`s[i] == -1`, in line with the array API standard.

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

Guard PyArrayScalar_VAL and PyUnicodeScalarObject for the limited API

`PyUnicodeScalarObject` holds a `PyUnicodeObject`, which is not
available when using `Py_LIMITED_API`. Add guards to hide it and
consequently also make the `PyArrayScalar_VAL` macro hidden.

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

Changes

- `np.gradient()` now returns a tuple rather than a list making the
return value immutable.

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

- Being fully context and thread-safe, `np.errstate` can only be
entered once now.

- `np.setbufsize` is now tied to `np.errstate()`: leaving an
`np.errstate` context will also reset the `bufsize`.

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

- A new public `np.lib.array_utils` submodule has been introduced and
it currently contains three functions: `byte_bounds` (moved from
`np.lib.utils`), `normalize_axis_tuple` and `normalize_axis_index`.

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

- Introduce `numpy.bool` as the new canonical name for
NumPy\'s boolean dtype, and make `numpy.bool\_` an alias
to it. Note that until NumPy 1.24, `np.bool` was an alias to
Python\'s builtin `bool`. The new name helps with array API standard
compatibility and is a more intuitive name.

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

- The `dtype.flags` value was previously stored as a signed integer.
This means that the aligned dtype struct flag lead to negative flags
being set (-128 rather than 128). This flag is now stored unsigned
(positive). Code which checks flags manually may need to adapt. This
may include code compiled with Cython 0.29.x.

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

Representation of NumPy scalars changed

As per NEP 51, the scalar representation has been updated to include the type
information to avoid confusion with Python scalars.

Scalars are now printed as `np.float64(3.0)` rather than just `3.0`.
This may disrupt workflows that store representations of numbers (e.g.,
to files) making it harder to read them. They should be stored as
explicit strings, for example by using `str()` or `f"{scalar!s}"`. For
the time being, affected users can use
`np.set_printoptions(legacy="1.25")` to get the old behavior (with
possibly a few exceptions). Documentation of downstream projects may
require larger updates, if code snippets are tested. We are working on
tooling for
[doctest-plus](https://github.com/scientific-python/pytest-doctestplus/issues/107)
to facilitate updates.

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

Truthiness of NumPy strings changed

NumPy strings previously were inconsistent about how they defined if the
string is `True` or `False` and the definition did not match the one
used by Python. Strings are now considered `True` when they are
non-empty and `False` when they are empty. This changes the following
distinct cases:

- Casts from string to boolean were previously roughly equivalent to
`string_array.astype(np.int64).astype(bool)`, meaning that only
valid integers could be cast. Now a string of `"0"` will be
considered `True` since it is not empty. If you need the old
behavior, you may use the above step (casting to integer first) or
`string_array == "0"` (if the input is only ever `0` or `1`). To get
the new result on old NumPy versions use `string_array != ""`.
- `np.nonzero(string_array)` previously ignored whitespace so that a
string only containing whitespace was considered `False`. Whitespace
is now considered `True`.

This change does not affect `np.loadtxt`, `np.fromstring`, or
`np.genfromtxt`. The first two still use the integer definition, while
`genfromtxt` continues to match for `"true"` (ignoring case). However,
if `np.bool_` is used as a converter the result will change.

The change does affect `np.fromregex` as it uses direct assignments.

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

A `mean` keyword was added to var and std function

Often when the standard deviation is needed the mean is also needed. The
same holds for the variance and the mean. Until now the mean is then
calculated twice, the change introduced here for the `numpy.var` and
`numpy.std` functions allows for passing in a precalculated mean as an keyword
argument. See the docstrings for details and an example illustrating the
speed-up.

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

Remove datetime64 deprecation warning when constructing with timezone

The `numpy.datetime64` method now issues a UserWarning rather than a
DeprecationWarning whenever a timezone is included in the datetime string that
is provided.

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

Default integer dtype is now 64-bit on 64-bit Windows

The default NumPy integer is now 64-bit on all 64-bit systems as the
historic 32-bit default on Windows was a common source of issues. Most
users should not notice this. The main issues may occur with code
interfacing with libraries written in a compiled language like C. For
more information see `migration_windows_int64`.

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

Renamed `numpy.core` to `numpy._core`

Accessing `numpy.core` now emits a DeprecationWarning. In practice we
have found that most downstream usage of `numpy.core` was to access
functionality that is available in the main `numpy` namespace. If for
some reason you are using functionality in `numpy.core` that is not
available in the main `numpy` namespace, this means you are likely using
private NumPy internals. You can still access these internals via
`numpy._core` without a deprecation warning but we do not provide any
backward compatibility guarantees for NumPy internals. Please open an
issue if you think a mistake was made and something needs to be made
public.

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

The \"relaxed strides\" debug build option, which was previously enabled
through the `NPY_RELAXED_STRIDES_DEBUG` environment variable or the
`-Drelaxed-strides-debug` config-settings flag has been removed.

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

Redefinition of `np.intp`/`np.uintp` (almost never a change)

Due to the actual use of these types almost always matching the use of
`size_t`/`Py_ssize_t` this is now the definition in C. Previously, it
matched `intptr_t` and `uintptr_t` which would often have been subtly
incorrect. This has no effect on the vast majority of machines since the
size of these types only differ on extremely niche platforms.

However, it means that:

- Pointers may not necessarily fit into an `intp` typed array anymore.
The `p` and `P` character codes can still be used, however.
- Creating `intptr_t` or `uintptr_t` typed arrays in C remains
possible in a cross-platform way via `PyArray_DescrFromType('p')`.
- The new character codes `nN` were introduced.
- It is now correct to use the Python C-API functions when parsing to
`npy_intp` typed arguments.

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

`numpy.fft.helper` made private

`numpy.fft.helper` was renamed to `numpy.fft._helper` to indicate that
it is a private submodule. All public functions exported by it should be
accessed from `numpy.fft`.

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

`numpy.linalg.linalg` made private

`numpy.linalg.linalg` was renamed to `numpy.linalg._linalg` to indicate
that it is a private submodule. All public functions exported by it
should be accessed from `numpy.linalg`.

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

Out-of-bound axis not the same as `axis=None`

In some cases `axis=32` or for concatenate any large value was the same
as `axis=None`. Except for `concatenate` this was deprecate. Any out of
bound axis value will now error, make sure to use `axis=None`.

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

New `copy` keyword meaning for `array` and `asarray` constructors

Now `numpy.array` and `numpy.asarray` support
three values for `copy` parameter:

- `None` - A copy will only be made if it is necessary.
- `True` - Always make a copy.
- `False` - Never make a copy. If a copy is required a `ValueError` is
raised.

The meaning of `False` changed as it now raises an exception if a copy
is needed.

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

The `__array__` special method now takes a `copy` keyword argument.

NumPy will pass `copy` to the `__array__` special method in situations
where it would be set to a non-default value (e.g. in a call to
`np.asarray(some_object, copy=False)`). Currently, if an unexpected
keyword argument error is raised after this, NumPy will print a warning
and re-try without the `copy` keyword argument. Implementations of
objects implementing the `__array__` protocol should accept a `copy`
keyword argument with the same meaning as when passed to
`numpy.array` or `numpy.asarray`.

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

Cleanup of initialization of `numpy.dtype` with strings with commas

The interpretation of strings with commas is changed slightly, in that a
trailing comma will now always create a structured dtype. E.g., where
previously `np.dtype("i")` and `np.dtype("i,")` were treated as
identical, now `np.dtype("i,")` will create a structured dtype, with a
single field. This is analogous to `np.dtype("i,i")` creating a
structured dtype with two fields, and makes the behaviour consistent
with that expected of tuples.

At the same time, the use of single number surrounded by parenthesis to
indicate a sub-array shape, like in `np.dtype("(2)i,")`, is deprecated.
Instead; one should use `np.dtype("(2,)i")` or `np.dtype("2i")`.
Eventually, using a number in parentheses will raise an exception, like
is the case for initializations without a comma, like
`np.dtype("(2)i")`.

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

Change in how complex sign is calculated

Following the array API standard, the complex sign is now calculated as
`z / |z|` (instead of the rather less logical case where the sign of the
real part was taken, unless the real part was zero, in which case the
sign of the imaginary part was returned). Like for real numbers, zero is
returned if `z==0`.

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

Return types of functions that returned a list of arrays

Functions that returned a list of ndarrays have been changed to return a
tuple of ndarrays instead. Returning tuples consistently whenever a
sequence of arrays is returned makes it easier for JIT compilers like
Numba, as well as for static type checkers in some cases, to support
these functions. Changed functions are: `numpy.atleast_1d`, `numpy.atleast_2d`,
`numpy.atleast_3d`, `numpy.broadcast_arrays`, `numpy.meshgrid`,
`numpy.ogrid`, `numpy.histogramdd`.

`np.unique` `return_inverse` shape for multi-dimensional inputs

When multi-dimensional inputs are passed to `np.unique` with
`return_inverse=True`, the `unique_inverse` output is now shaped such
that the input can be reconstructed directly using
`np.take(unique, unique_inverse)` when `axis=None`, and
`np.take_along_axis(unique, unique_inverse, axis=axis)` otherwise.

([gh-25553](https://github.com/numpy/numpy/pull/24126),
[gh-25570](https://github.com/numpy/numpy/pull/25570))

`any` and `all` return booleans for object arrays

The `any` and `all` functions and methods now return booleans also for
object arrays. Previously, they did a reduction which behaved like the
Python `or` and `and` operators which evaluates to one of the arguments.
You can use `np.logical_or.reduce` and `np.logical_and.reduce` to
achieve the previous behavior.

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

**Content from release note snippets in doc/release/upcoming_changes:**

Checksums

MD5

b2f97f907cc640f5f619ea4ebd1231d3 numpy-2.0.0b1-cp310-cp310-macosx_10_9_x86_64.whl
db158043b6fad6e523e23b3eb2de5d88 numpy-2.0.0b1-cp310-cp310-macosx_11_0_arm64.whl
39086961c062d97c5b42da057b9b1947 numpy-2.0.0b1-cp310-cp310-macosx_14_0_arm64.whl
3362d35bf69b852b98b41b8373253a0f numpy-2.0.0b1-cp310-cp310-macosx_14_0_x86_64.whl
66e907969e32ec43e887cabcc1884763 numpy-2.0.0b1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
b8d1bece144e3b6aae641d44821f815f numpy-2.0.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
96ab156ec312bb451e8c5e19de4a28b7 numpy-2.0.0b1-cp310-cp310-musllinux_1_1_aarch64.whl
c04819a4f3395b81d124ffc6330925e9 numpy-2.0.0b1-cp310-cp310-musllinux_1_1_x86_64.whl
6af68b8eb8fe583ffabab9bd7da1c620 numpy-2.0.0b1-cp310-cp310-win32.whl
3b8a9514e5795985bcba20e213d55b54 numpy-2.0.0b1-cp310-cp310-win_amd64.whl
0128ad9249f70d97a057a23e0cef1515 numpy-2.0.0b1-cp311-cp311-macosx_10_9_x86_64.whl
612c018a7676ce3747cb863762750e1d numpy-2.0.0b1-cp311-cp311-macosx_11_0_arm64.whl
6b1480446aff53c71c903fc1248bca94 numpy-2.0.0b1-cp311-cp311-macosx_14_0_arm64.whl
8d66a0af99edf30dc9de487b3f8c1639 numpy-2.0.0b1-cp311-cp311-macosx_14_0_x86_64.whl
f9154a0885b2647d7e81f32900390ebb numpy-2.0.0b1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
9dd14e2b594a2d47eb25ecc759d5adaa numpy-2.0.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
8434d07fc4eb80c5df9ae5ebf95546eb numpy-2.0.0b1-cp311-cp311-musllinux_1_1_aarch64.whl
a0402697c93a9d6bc8d979fabd6bf179 numpy-2.0.0b1-cp311-cp311-musllinux_1_1_x86_64.whl
2ba67ffb4b92b54394b6929b3a899cb2 numpy-2.0.0b1-cp311-cp311-win32.whl
d75e2f02c698e492b7b07f0659f9bbe4 numpy-2.0.0b1-cp311-cp311-win_amd64.whl
558fefd135de6fcebe2b94d857a84c32 numpy-2.0.0b1-cp312-cp312-macosx_10_9_x86_64.whl
d684790e4509e7daa99a1aef1d0be536 numpy-2.0.0b1-cp312-cp312-macosx_11_0_arm64.whl
fd5d4f1d1da0cc685c54e9abd2f9dceb numpy-2.0.0b1-cp312-cp312-macosx_14_0_arm64.whl
65183c1302348d3db60eaf3b62c1e577 numpy-2.0.0b1-cp312-cp312-macosx_14_0_x86_64.whl
305eaf68e214011557303988f4635271 numpy-2.0.0b1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e3a84e27effd888cf93eb2c1aad759e7 numpy-2.0.0b1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
88eef47ecdd11ac0939291abe0c74b6f numpy-2.0.0b1-cp312-cp312-musllinux_1_1_aarch64.whl
fd390078c0046c20a659035c1826185f numpy-2.0.0b1-cp312-cp312-musllinux_1_1_x86_64.whl
23db11989d2d0086ff12655355245a2a numpy-2.0.0b1-cp312-cp312-win32.whl
323d05ef29a9c8166d865ab221faf7dc numpy-2.0.0b1-cp312-cp312-win_amd64.whl
f5ad7adf599b65050ccd116802f0265d numpy-2.0.0b1-cp39-cp39-macosx_10_9_x86_64.whl
89a94dddb18e4210e01ee6ca24012fcb numpy-2.0.0b1-cp39-cp39-macosx_11_0_arm64.whl
409a537dc5ea249b3e6868dd37932342 numpy-2.0.0b1-cp39-cp39-macosx_14_0_arm64.whl
0db893de846425d58b90f05c1db3d191 numpy-2.0.0b1-cp39-cp39-macosx_14_0_x86_64.whl
c73ba41d166a5f2e72cdc48b8554c6e6 numpy-2.0.0b1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
786236fc9099283255133273535b8de0 numpy-2.0.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
f2e8717957a6b3b37f881e8939a2af37 numpy-2.0.0b1-cp39-cp39-musllinux_1_1_aarch64.whl
dad671b45f6e13c28ead06064b03eaee numpy-2.0.0b1-cp39-cp39-musllinux_1_1_x86_64.whl
76f8f89ff91d06df684cf47d7ea6d8ab numpy-2.0.0b1-cp39-cp39-win32.whl
d4dcbd6157783aa0e78710549f13876f numpy-2.0.0b1-cp39-cp39-win_amd64.whl
41a13de3afff77390b0d1ea3c7e407db numpy-2.0.0b1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
fc2ff82233376f853161c7f9bc6d44b7 numpy-2.0.0b1-pp39-pypy39_pp73-macosx_14_0_arm64.whl
860609ee9f1f24d4f28fbbcf3d31cdc9 numpy-2.0.0b1-pp39-pypy39_pp73-macosx_14_0_x86_64.whl
2a97175cec7a5b1280ed2a991fea23ff numpy-2.0.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1656013175e650e053c15fd886be58f1 numpy-2.0.0b1-pp39-pypy39_pp73-win_amd64.whl
c06e95d7cadfa33a1f4549c9a5dcba05 numpy-2.0.0b1.tar.gz

SHA256

411ed8eb48eb679fc732f22e90c9adb994ec6ad2d9c2f53593325a975f9fa501 numpy-2.0.0b1-cp310-cp310-macosx_10_9_x86_64.whl
f8aca0561166702070ea9abcafd70da44df48be70d16f0a886e359127436fdcc numpy-2.0.0b1-cp310-cp310-macosx_11_0_arm64.whl
0d217dae0f20a3400c1d80aa8401af9de93b9bb4ea7518b8ba200ff8ff62529e numpy-2.0.0b1-cp310-cp310-macosx_14_0_arm64.whl
824351cb4cce66c1f8e16c1698c01de8d5e4197461f78197c327281f107fc1b2 numpy-2.0.0b1-cp310-cp310-macosx_14_0_x86_64.whl
cae0959a4f5a9c16896a87a43c9e81384f48b69f835f55050948071488820486 numpy-2.0.0b1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
3d47a42c1e48e46dbbe32e0395f8aa6e8ddd251771ed9ec47fc07aa89b8aac89 numpy-2.0.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
909024f923c019d1b9dca16871844f1c313c422bd430a0b7e4a24a3acb766483 numpy-2.0.0b1-cp310-cp310-musllinux_1_1_aarch64.whl
fc6e82bea99727aeed964808f26bed95323825a75e94c015eb913fb6ec3dbdf8 numpy-2.0.0b1-cp310-cp310-musllinux_1_1_x86_64.whl
36862cad55650afbcb3f0e3a5edc07ba4c1090eb649208a41fadcf82cf1b2966 numpy-2.0.0b1-cp310-cp310-win32.whl
0e6a63c725143a6be0e48effcf01b8361b80ab20e2444704356f9d9db48ba429 numpy-2.0.0b1-cp310-cp310-win_amd64.whl
e6c3ba4bcb6cf3fd4ace244075fa214b4f0c090f12437378200a2de68144c166 numpy-2.0.0b1-cp311-cp311-macosx_10_9_x86_64.whl
89bbb14534e53c6175aabc8449a8bdf83f02da62f13d1b5facbb2fd1fecae2e2 numpy-2.0.0b1-cp311-cp311-macosx_11_0_arm64.whl
b14b6e6ca51afdcfc589cb9d6fb73aedf38009a1a0ecab15f77e3d0e0754cac0 numpy-2.0.0b1-cp311-cp311-macosx_14_0_arm64.whl
ffef68423c1edc5d10321f9787fb9d8c20a36fc08ffdba863d103924d02dadce numpy-2.0.0b1-cp311-cp311-macosx_14_0_x86_64.whl
7e8725313b8a8aaa9cfac450713b1a74a8d79ae010ee0d0dd97505abf54d247b numpy-2.0.0b1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
d83e18f1c4164dbcaa01adc8f4a3aebc3c5fa635d2009d8dc1bf53dd7eab0063 numpy-2.0.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
91e37a5bb38c11bde547aefeb79dd382b5d9d1d140931927bca46c9d198e08f3 numpy-2.0.0b1-cp311-cp311-musllinux_1_1_aarch64.whl
d39f1005a627c5960f67b02c1f76f265e0d4219b6d7948a7809dc14443fcbeb6 numpy-2.0.0b1-cp311-cp311-musllinux_1_1_x86_64.whl
3ed4afbcdb8db622b90ef33bf0c0d080f287ec590032f9033be5cbc51e005b66 numpy-2.0.0b1-cp311-cp311-win32.whl
941382abe21d26222310275a91f053386450b5364f1307641d03babfec5b1931 numpy-2.0.0b1-cp311-cp311-win_amd64.whl
a78a38ff86aa651534979d597fdb178c7ae2c9934d95bcc921971ceea14ef54a numpy-2.0.0b1-cp312-cp312-macosx_10_9_x86_64.whl
e5222fb05011c310d294c40e2b8640c9351aaf3238c0605486a3f041a7befabd numpy-2.0.0b1-cp312-cp312-macosx_11_0_arm64.whl
0f69c008a8533879ea0480fe11b28154c0dc12567522406f2c887bc549a98865 numpy-2.0.0b1-cp312-cp312-macosx_14_0_arm64.whl
a5b47099876fceefb5ac4d2cfe4ee7337de22253aafe6f2e545b84d100bf9e22 numpy-2.0.0b1-cp312-cp312-macosx_14_0_x86_64.whl
a81816e4dc75351dd1ce2d84f381856b8962eef1757ddfe13007d2a8bb966fda numpy-2.0.0b1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
3ecb219af16b0dbf58bbe1fdb4d074582f9a99567d85c630cf82c3b40168a15d numpy-2.0.0b1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
7479d8f43dd78a3bd1c8a3c7c9b06e71639c480a0223c31a4aeb2c7e8fd62151 numpy-2.0.0b1-cp312-cp312-musllinux_1_1_aarch64.whl
1665b832541449c7079ee9d41f334ab832a1d84511cc834c0bc8d98bf96d1df5 numpy-2.0.0b1-cp312-cp312-musllinux_1_1_x86_64.whl
585471edf1f205fb589632581cc7b30c6c0e78d79b3c754739bb62ff568fa587 numpy-2.0.0b1-cp312-cp312-win32.whl
881df25d857873947d54dbed01d98c417f3feb5df86ece719eebf1edbbb2095c numpy-2.0.0b1-cp312-cp312-win_amd64.whl
797dc478feed31f78bca1c69d9a167c6294599927c184f4e9b569ad8895ca6e5 numpy-2.0.0b1-cp39-cp39-macosx_10_9_x86_64.whl
49cb06682f4588c2553a63445b7e37aec731452fe380c3bd142377783a9ba014 numpy-2.0.0b1-cp39-cp39-macosx_11_0_arm64.whl
5fd7ec50b9650ac0aa4fd318eceb9059ed3c0ab3aa79d5f260a10158521f9770 numpy-2.0.0b1-cp39-cp39-macosx_14_0_arm64.whl
72526252a5d1da5067181bfd3df9cc6d7dcd024b757f5d35e8f1d0c08cb729c1 numpy-2.0.0b1-cp39-cp39-macosx_14_0_x86_64.whl
7870b854823217f34e6258328f46e40f68784f61408deb37a29ca64762c60c10 numpy-2.0.0b1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
26a0978595ac2e8160d27f7537ff94402eaaf3ea7a768e7f99170ed91453d1bf numpy-2.0.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
5801a93e424c12366d8b0b411dfeb7102f7429f0934059a39b1529f02ea2606b numpy-2.0.0b1-cp39-cp39-musllinux_1_1_aarch64.whl
2f67038ecdf4b372d81fa00530547a5d04b77da5b1e4fc55f58021f3135331ea numpy-2.0.0b1-cp39-cp39-musllinux_1_1_x86_64.whl
f32b6ec16518b3ba1a2d3a100d9b413cf24aaeeefdec19f1cddec55cb4a31dac numpy-2.0.0b1-cp39-cp39-win32.whl
70a22408ed088725fe44a6f55a077d1f704977b262e53d30ba485a01229028a3 numpy-2.0.0b1-cp39-cp39-win_amd64.whl
a69f1624d036953f3f2795f22e6be452ee6d24937ae14f77c2e536589e20caa2 numpy-2.0.0b1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
c27970540ee6b4b8325779cd22eee0283cb9dc6511130ff54e774fcd0a261d4b numpy-2.0.0b1-pp39-pypy39_pp73-macosx_14_0_arm64.whl
393adcc241ff7010b43e4660710a43c322189ff67461afba18bbaf9f5581b221 numpy-2.0.0b1-pp39-pypy39_pp73-macosx_14_0_x86_64.whl
4205b3efa27b74cb096443bdda178f5032ffc6b41306a7d4a0b903b4b614b146 numpy-2.0.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
52f9cd632f9f5e179e98769d76702ce9a307439f36191607d5ee06cb8a986d01 numpy-2.0.0b1-pp39-pypy39_pp73-win_amd64.whl
e0bb33a37d0d0b9a19cd41a093877f830e06bd4d989341b9792896cf08e629f7 numpy-2.0.0b1.tar.gz

Page 3 of 23

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.