Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pin numpy to latest version 2.1.1 #426

Closed
wants to merge 1 commit into from
Closed

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Sep 3, 2024

This PR pins numpy to the latest release 2.1.1.

Changelog

2.1.1

discovered after the 2.1.0 release.

The Python versions supported by this release are 3.10-3.13.

Contributors

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

-   Andrew Nelson
-   Charles Harris
-   Mateusz Sokół
-   Maximilian Weigand +
-   Nathan Goldbaum
-   Pieter Eendebak
-   Sebastian Berg

Pull requests merged

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

-   [27236](https://github.com/numpy/numpy/pull/27236): REL: Prepare for the NumPy 2.1.0 release \[wheel build\]
-   [27252](https://github.com/numpy/numpy/pull/27252): MAINT: prepare 2.1.x for further development
-   [27259](https://github.com/numpy/numpy/pull/27259): BUG: revert unintended change in the return value of set_printoptions
-   [27266](https://github.com/numpy/numpy/pull/27266): BUG: fix reference counting bug in \_\_array_interface\_\_ implementation...
-   [27267](https://github.com/numpy/numpy/pull/27267): TST: Add regression test for missing descr in array-interface
-   [27276](https://github.com/numpy/numpy/pull/27276): BUG: Fix #27256 and 27257
-   [27278](https://github.com/numpy/numpy/pull/27278): BUG: Fix array_equal for numeric and non-numeric scalar types
-   [27287](https://github.com/numpy/numpy/pull/27287): MAINT: Update maintenance/2.1.x after the 2.0.2 release
-   [27303](https://github.com/numpy/numpy/pull/27303): BLD: cp311- macosx_arm64 wheels \[wheel build\]
-   [27304](https://github.com/numpy/numpy/pull/27304): BUG: f2py: better handle filtering of public/private subroutines

Checksums

MD5

 3053a97400db800b7377749e691eb39e  numpy-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl
 84b752a2220dce7c96ff89eef4f4aec3  numpy-2.1.1-cp310-cp310-macosx_11_0_arm64.whl
 47ed4f704a64261f07ca24ef2e674524  numpy-2.1.1-cp310-cp310-macosx_14_0_arm64.whl
 b8a45caa870aee980c298053cf064d28  numpy-2.1.1-cp310-cp310-macosx_14_0_x86_64.whl
 e097ad5eee572b791b4a25eedad6df4a  numpy-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 ae502c99315884cda7f0236a07c035c4  numpy-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 841a859d975c55090c0b60b72aab93a3  numpy-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl
 d51be2b17f5b87aac64ab80fdfafc85e  numpy-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl
 1f8249bd725397c6233fe6a0e8ad18b1  numpy-2.1.1-cp310-cp310-win32.whl
 d38d6f06589c1ec104a6a31ff6035781  numpy-2.1.1-cp310-cp310-win_amd64.whl
 6a18fe3029aae00986975250313bf16f  numpy-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl
 5b0b3aa01fbd0b5a8b0f354bb878351e  numpy-2.1.1-cp311-cp311-macosx_11_0_arm64.whl
 1c492dad399abe7b97274b4c6c12ae53  numpy-2.1.1-cp311-cp311-macosx_14_0_arm64.whl
 4d55d91e71b62eb5fa6561c606524f60  numpy-2.1.1-cp311-cp311-macosx_14_0_x86_64.whl
 88e99ecd063c178f25bc08d20792a9bf  numpy-2.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 f3c8b0e4fb059b9219e8ec86d9fda861  numpy-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 df632b5fed7eb78d39e7194d2475c19b  numpy-2.1.1-cp311-cp311-musllinux_1_1_x86_64.whl
 65499daccdb178d26e322d9f359cf146  numpy-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl
 eb97327fd7aa6027e2409d0dcca1129a  numpy-2.1.1-cp311-cp311-win32.whl
 9e4b05b38cbff22c2bdfead528b9d2bc  numpy-2.1.1-cp311-cp311-win_amd64.whl
 6b8a359bb865b5c624fd9ffc848393e1  numpy-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl
 eaf8dce312efa2b0f17ad46612fb1681  numpy-2.1.1-cp312-cp312-macosx_11_0_arm64.whl
 c861ff048b336284fe7c0791b1a6b0b4  numpy-2.1.1-cp312-cp312-macosx_14_0_arm64.whl
 7e1befccfe729dc5d6c450a5fb6b801c  numpy-2.1.1-cp312-cp312-macosx_14_0_x86_64.whl
 ea0a401ef653a167221987a10cbef260  numpy-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 97326ac792d26f2e536a519c82f2d6bc  numpy-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 fdd2a82232c03d11bbc7cec0a8e01ab0  numpy-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl
 0d6716e9a7b2c0d6e5ace9c01b9bca01  numpy-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl
 ba589ed2a79c88187c3b8574ae72a1c7  numpy-2.1.1-cp312-cp312-win32.whl
 806ca7c1e2a2013b786edbb619f6da47  numpy-2.1.1-cp312-cp312-win_amd64.whl
 647665353e5af5884df4e51610990c22  numpy-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl
 bfd3b3c5c4616ef99d917bd94d39114a  numpy-2.1.1-cp313-cp313-macosx_11_0_arm64.whl
 cb989095f9c74e3b32250a984390faeb  numpy-2.1.1-cp313-cp313-macosx_14_0_arm64.whl
 55ad7548e58f61b9a4f91749e36d237f  numpy-2.1.1-cp313-cp313-macosx_14_0_x86_64.whl
 5bc73d67dd1032524bfd36ef877b09e4  numpy-2.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 c7dfb09db8284cb75296f708c3f77ea3  numpy-2.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 7cf90ce1b844a97aeea1a5b8c71fb49b  numpy-2.1.1-cp313-cp313-musllinux_1_1_x86_64.whl
 6ec8baeac5f979a3b98017679d457bbc  numpy-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl
 1f198cb5210c76faae81359a83d58230  numpy-2.1.1-cp313-cp313-win32.whl
 1766258213ad41f7e36f2209ee6d2a30  numpy-2.1.1-cp313-cp313-win_amd64.whl
 f0a7a0456308dbeb739ad886f1632f16  numpy-2.1.1-cp313-cp313t-macosx_10_13_x86_64.whl
 302c9cf7b4aa695974500ee1935a92c9  numpy-2.1.1-cp313-cp313t-macosx_11_0_arm64.whl
 f4aa7d784992abb9bd9fe9db09c01c06  numpy-2.1.1-cp313-cp313t-macosx_14_0_arm64.whl
 3bb4ae9906499609769f1774438149a5  numpy-2.1.1-cp313-cp313t-macosx_14_0_x86_64.whl
 ff6b9e1993d3d540074736014b1d13af  numpy-2.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 749489c091ee9c00abf1ad1ef822c3ca  numpy-2.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 32d2daf4064031f365ced5036757ad8b  numpy-2.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl
 603dfe4ef56c01e1fc0dcc9d5e3090ed  numpy-2.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl
 70fa2d3b78633bb6061c90e17364f27f  numpy-2.1.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
 9a430be5d14b689ed051eccc540dfbdc  numpy-2.1.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl
 7291ff124e471d32c03464da18ff108d  numpy-2.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 e56ce141724af119c7c647a8705827a5  numpy-2.1.1-pp310-pypy310_pp73-win_amd64.whl
 f63b4750618bfa5490f10cae37fde998  numpy-2.1.1.tar.gz

SHA256

 c8a0e34993b510fc19b9a2ce7f31cb8e94ecf6e924a40c0c9dd4f62d0aac47d9  numpy-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl
 7dd86dfaf7c900c0bbdcb8b16e2f6ddf1eb1fe39c6c8cca6e94844ed3152a8fd  numpy-2.1.1-cp310-cp310-macosx_11_0_arm64.whl
 5889dd24f03ca5a5b1e8a90a33b5a0846d8977565e4ae003a63d22ecddf6782f  numpy-2.1.1-cp310-cp310-macosx_14_0_arm64.whl
 59ca673ad11d4b84ceb385290ed0ebe60266e356641428c845b39cd9df6713ab  numpy-2.1.1-cp310-cp310-macosx_14_0_x86_64.whl
 13ce49a34c44b6de5241f0b38b07e44c1b2dcacd9e36c30f9c2fcb1bb5135db7  numpy-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 913cc1d311060b1d409e609947fa1b9753701dac96e6581b58afc36b7ee35af6  numpy-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 caf5d284ddea7462c32b8d4a6b8af030b6c9fd5332afb70e7414d7fdded4bfd0  numpy-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl
 57eb525e7c2a8fdee02d731f647146ff54ea8c973364f3b850069ffb42799647  numpy-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl
 9a8e06c7a980869ea67bbf551283bbed2856915f0a792dc32dd0f9dd2fb56728  numpy-2.1.1-cp310-cp310-win32.whl
 d10c39947a2d351d6d466b4ae83dad4c37cd6c3cdd6d5d0fa797da56f710a6ae  numpy-2.1.1-cp310-cp310-win_amd64.whl
 0d07841fd284718feffe7dd17a63a2e6c78679b2d386d3e82f44f0108c905550  numpy-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl
 b5613cfeb1adfe791e8e681128f5f49f22f3fcaa942255a6124d58ca59d9528f  numpy-2.1.1-cp311-cp311-macosx_11_0_arm64.whl
 0b8cc2715a84b7c3b161f9ebbd942740aaed913584cae9cdc7f8ad5ad41943d0  numpy-2.1.1-cp311-cp311-macosx_14_0_arm64.whl
 b49742cdb85f1f81e4dc1b39dcf328244f4d8d1ded95dea725b316bd2cf18c95  numpy-2.1.1-cp311-cp311-macosx_14_0_x86_64.whl
 e8d5f8a8e3bc87334f025194c6193e408903d21ebaeb10952264943a985066ca  numpy-2.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 d51fc141ddbe3f919e91a096ec739f49d686df8af254b2053ba21a910ae518bf  numpy-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 98ce7fb5b8063cfdd86596b9c762bf2b5e35a2cdd7e967494ab78a1fa7f8b86e  numpy-2.1.1-cp311-cp311-musllinux_1_1_x86_64.whl
 24c2ad697bd8593887b019817ddd9974a7f429c14a5469d7fad413f28340a6d2  numpy-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl
 397bc5ce62d3fb73f304bec332171535c187e0643e176a6e9421a6e3eacef06d  numpy-2.1.1-cp311-cp311-win32.whl
 ae8ce252404cdd4de56dcfce8b11eac3c594a9c16c231d081fb705cf23bd4d9e  numpy-2.1.1-cp311-cp311-win_amd64.whl
 7c803b7934a7f59563db459292e6aa078bb38b7ab1446ca38dd138646a38203e  numpy-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl
 6435c48250c12f001920f0751fe50c0348f5f240852cfddc5e2f97e007544cbe  numpy-2.1.1-cp312-cp312-macosx_11_0_arm64.whl
 3269c9eb8745e8d975980b3a7411a98976824e1fdef11f0aacf76147f662b15f  numpy-2.1.1-cp312-cp312-macosx_14_0_arm64.whl
 fac6e277a41163d27dfab5f4ec1f7a83fac94e170665a4a50191b545721c6521  numpy-2.1.1-cp312-cp312-macosx_14_0_x86_64.whl
 fcd8f556cdc8cfe35e70efb92463082b7f43dd7e547eb071ffc36abc0ca4699b  numpy-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 d2b9cd92c8f8e7b313b80e93cedc12c0112088541dcedd9197b5dee3738c1201  numpy-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 afd9c680df4de71cd58582b51e88a61feed4abcc7530bcd3d48483f20fc76f2a  numpy-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl
 8661c94e3aad18e1ea17a11f60f843a4933ccaf1a25a7c6a9182af70610b2313  numpy-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl
 950802d17a33c07cba7fd7c3dcfa7d64705509206be1606f196d179e539111ed  numpy-2.1.1-cp312-cp312-win32.whl
 3fc5eabfc720db95d68e6646e88f8b399bfedd235994016351b1d9e062c4b270  numpy-2.1.1-cp312-cp312-win_amd64.whl
 046356b19d7ad1890c751b99acad5e82dc4a02232013bd9a9a712fddf8eb60f5  numpy-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl
 6e5a9cb2be39350ae6c8f79410744e80154df658d5bea06e06e0ac5bb75480d5  numpy-2.1.1-cp313-cp313-macosx_11_0_arm64.whl
 d4c57b68c8ef5e1ebf47238e99bf27657511ec3f071c465f6b1bccbef12d4136  numpy-2.1.1-cp313-cp313-macosx_14_0_arm64.whl
 8ae0fd135e0b157365ac7cc31fff27f07a5572bdfc38f9c2d43b2aff416cc8b0  numpy-2.1.1-cp313-cp313-macosx_14_0_x86_64.whl
 981707f6b31b59c0c24bcda52e5605f9701cb46da4b86c2e8023656ad3e833cb  numpy-2.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 2ca4b53e1e0b279142113b8c5eb7d7a877e967c306edc34f3b58e9be12fda8df  numpy-2.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 e097507396c0be4e547ff15b13dc3866f45f3680f789c1a1301b07dadd3fbc78  numpy-2.1.1-cp313-cp313-musllinux_1_1_x86_64.whl
 f7506387e191fe8cdb267f912469a3cccc538ab108471291636a96a54e599556  numpy-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl
 251105b7c42abe40e3a689881e1793370cc9724ad50d64b30b358bbb3a97553b  numpy-2.1.1-cp313-cp313-win32.whl
 f212d4f46b67ff604d11fff7cc62d36b3e8714edf68e44e9760e19be38c03eb0  numpy-2.1.1-cp313-cp313-win_amd64.whl
 920b0911bb2e4414c50e55bd658baeb78281a47feeb064ab40c2b66ecba85553  numpy-2.1.1-cp313-cp313t-macosx_10_13_x86_64.whl
 bab7c09454460a487e631ffc0c42057e3d8f2a9ddccd1e60c7bb8ed774992480  numpy-2.1.1-cp313-cp313t-macosx_11_0_arm64.whl
 cea427d1350f3fd0d2818ce7350095c1a2ee33e30961d2f0fef48576ddbbe90f  numpy-2.1.1-cp313-cp313t-macosx_14_0_arm64.whl
 e30356d530528a42eeba51420ae8bf6c6c09559051887196599d96ee5f536468  numpy-2.1.1-cp313-cp313t-macosx_14_0_x86_64.whl
 e8dfa9e94fc127c40979c3eacbae1e61fda4fe71d84869cc129e2721973231ef  numpy-2.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
 910b47a6d0635ec1bd53b88f86120a52bf56dcc27b51f18c7b4a2e2224c29f0f  numpy-2.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 13cc11c00000848702322af4de0147ced365c81d66053a67c2e962a485b3717c  numpy-2.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl
 53e27293b3a2b661c03f79aa51c3987492bd4641ef933e366e0f9f6c9bf257ec  numpy-2.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl
 7be6a07520b88214ea85d8ac8b7d6d8a1839b0b5cb87412ac9f49fa934eb15d5  numpy-2.1.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
 52ac2e48f5ad847cd43c4755520a2317f3380213493b9d8a4c5e37f3b87df504  numpy-2.1.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl
 50a95ca3560a6058d6ea91d4629a83a897ee27c00630aed9d933dff191f170cd  numpy-2.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
 99f4a9ee60eed1385a86e82288971a51e71df052ed0b2900ed30bc840c0f2e39  numpy-2.1.1-pp310-pypy310_pp73-win_amd64.whl
 d0cf7d55b1051387807405b3898efafa862997b4cba8aa5dbe657be794afeafd  numpy-2.1.1.tar.gz

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.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
 8cafab480740e22f8d833

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants