Numpy

Latest version: v2.2.1

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

Scan your dependencies

Page 11 of 23

1.21.3

Not secure
==========================

The NumPy 1.21.3 is a maintenance release the fixes a few bugs
discovered after 1.21.2. It also provides 64 bit Python 3.10.0 wheels.
Note a few oddities about Python 3.10:

- There are no 32 bit wheels for Windows, Mac, or Linux.
- The Mac Intel builds are only available in universal2 wheels.

The Python versions supported in this release are 3.7-3.10. If you want
to compile your own version using gcc-11 you will need to use gcc-11.2+
to avoid problems.

Contributors
------------

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

- Aaron Meurer
- Bas van Beek
- Charles Harris
- Developer-Ecosystem-Engineering +
- Kevin Sheppard
- Sebastian Berg
- Warren Weckesser

Pull requests merged
--------------------

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

- [\19745](https://github.com/numpy/numpy/pull/19745): ENH: Add dtype-support to 3 `` `generic ``/`ndarray` methods
- [\19955](https://github.com/numpy/numpy/pull/19955): BUG: Resolve Divide by Zero on Apple silicon + test failures\...
- [\19958](https://github.com/numpy/numpy/pull/19958): MAINT: Mark type-check-only ufunc subclasses as ufunc aliases\...
- [\19994](https://github.com/numpy/numpy/pull/19994): BUG: np.tan(np.inf) test failure
- [\20080](https://github.com/numpy/numpy/pull/20080): BUG: Correct incorrect advance in PCG with emulated int128
- [\20081](https://github.com/numpy/numpy/pull/20081): BUG: Fix NaT handling in the PyArray\_CompareFunc for datetime\...
- [\20082](https://github.com/numpy/numpy/pull/20082): DOC: Ensure that we add documentation also as to the dict for\...
- [\20106](https://github.com/numpy/numpy/pull/20106): BUG: core: result\_type(0, np.timedelta64(4)) would seg. fault.

Checksums
---------

MD5

9acea9630856659ba48fdb582ecc37b4 numpy-1.21.3-cp310-cp310-macosx_10_9_universal2.whl
a70f80a4e74a3153a8307c4f0ea8d13d numpy-1.21.3-cp310-cp310-macosx_11_0_arm64.whl
13cfe83efd261ea1c3d1eb02c1d3af83 numpy-1.21.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
8576bfd867834182269f72abbaa2e81e numpy-1.21.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
8ac48f503f1e22c0c2b5d056772aca27 numpy-1.21.3-cp310-cp310-win_amd64.whl
cbe0d0d7623de3c2c7593f673d1a880a numpy-1.21.3-cp37-cp37m-macosx_10_9_x86_64.whl
0967b18baba13e511c7eb48902a62b39 numpy-1.21.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
da54c9566f3e3f8c7d60efebfdf7e1ae numpy-1.21.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
0aa000f3c10cf74bf47770577384b5c8 numpy-1.21.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
5683501bf91be25c53c52e3b083098c3 numpy-1.21.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
89e15d979533f8a314e0ab0648ee7153 numpy-1.21.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
a093fea475b5ed18bd21b3c79e68e388 numpy-1.21.3-cp37-cp37m-win32.whl
f906001213ed0902b1aecfaa12224e94 numpy-1.21.3-cp37-cp37m-win_amd64.whl
88a2cd378412220d618473dd273baf04 numpy-1.21.3-cp38-cp38-macosx_10_9_universal2.whl
1bc55202f604e30f338bc2ed27b561bc numpy-1.21.3-cp38-cp38-macosx_10_9_x86_64.whl
9555dc6de8748958434e8f2feba98494 numpy-1.21.3-cp38-cp38-macosx_11_0_arm64.whl
93ad32cc87866e9242156bdadc61e5f5 numpy-1.21.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
7cb0b7dd6aee667ecdccae1829260186 numpy-1.21.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
34e6f5f9e9534ef8772f024170c2bd2d numpy-1.21.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
54e6abfb8f600de2ccd1649b1fca820b numpy-1.21.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
260ba58f2dc64e779eac7318ec92f36c numpy-1.21.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
889202c6bdaf8c1ae0803925e9e1a8f7 numpy-1.21.3-cp38-cp38-win32.whl
980303a7e6317faf9a56ba8fc80795d9 numpy-1.21.3-cp38-cp38-win_amd64.whl
44d6bd26fb910710ab4002d0028c9020 numpy-1.21.3-cp39-cp39-macosx_10_9_universal2.whl
6f5b02152bd0b08a77b79657788ce59c numpy-1.21.3-cp39-cp39-macosx_10_9_x86_64.whl
ad05d5c412d15e7880cd65cc6cdd4aac numpy-1.21.3-cp39-cp39-macosx_11_0_arm64.whl
5b61a91221931af4a78c3bd20925a91f numpy-1.21.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
df7344ae04c5a54249fa1b63a256ce61 numpy-1.21.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
c653a096da47b64b42e8f1536a21f7d4 numpy-1.21.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e0d35451ba1c37f96e032bc6f75ccdf7 numpy-1.21.3-cp39-cp39-win32.whl
b2e1dc59b6fa224ce11728d94be740a6 numpy-1.21.3-cp39-cp39-win_amd64.whl
8ce925a0fcbc1062985026215d369276 numpy-1.21.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
b8e6b7165f105bde0b45cd9ae34bfe20 numpy-1.21.3.tar.gz
59d986f5ccf3edfb7d4d14949c6666ed numpy-1.21.3.zip

SHA256

508b0b513fa1266875524ba8a9ecc27b02ad771fe1704a16314dc1a816a68737 numpy-1.21.3-cp310-cp310-macosx_10_9_universal2.whl
5dfe9d6a4c39b8b6edd7990091fea4f852888e41919d0e6722fe78dd421db0eb numpy-1.21.3-cp310-cp310-macosx_11_0_arm64.whl
8a10968963640e75cc0193e1847616ab4c718e83b6938ae74dea44953950f6b7 numpy-1.21.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
49c6249260890e05b8111ebfc391ed58b3cb4b33e63197b2ec7f776e45330721 numpy-1.21.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
f8f4625536926a155b80ad2bbff44f8cc59e9f2ad14cdda7acf4c135b4dc8ff2 numpy-1.21.3-cp310-cp310-win_amd64.whl
e54af82d68ef8255535a6cdb353f55d6b8cf418a83e2be3569243787a4f4866f numpy-1.21.3-cp37-cp37m-macosx_10_9_x86_64.whl
f41b018f126aac18583956c54544db437f25c7ee4794bcb23eb38bef8e5e192a numpy-1.21.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
50cd26b0cf6664cb3b3dd161ba0a09c9c1343db064e7c69f9f8b551f5104d654 numpy-1.21.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
4cc9b512e9fb590797474f58b7f6d1f1b654b3a94f4fa8558b48ca8b3cfc97cf numpy-1.21.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
88a5d6b268e9ad18f3533e184744acdaa2e913b13148160b1152300c949bbb5f numpy-1.21.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
3c09418a14471c7ae69ba682e2428cae5b4420a766659605566c0fa6987f6b7e numpy-1.21.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
90bec6a86b348b4559b6482e2b684db4a9a7eed1fa054b86115a48d58fbbf62a numpy-1.21.3-cp37-cp37m-win32.whl
043e83bfc274649c82a6f09836943e4a4aebe5e33656271c7dbf9621dd58b8ec numpy-1.21.3-cp37-cp37m-win_amd64.whl
75621882d2230ab77fb6a03d4cbccd2038511491076e7964ef87306623aa5272 numpy-1.21.3-cp38-cp38-macosx_10_9_universal2.whl
188031f833bbb623637e66006cf75e933e00e7231f67e2b45cf8189612bb5dc3 numpy-1.21.3-cp38-cp38-macosx_10_9_x86_64.whl
160ccc1bed3a8371bf0d760971f09bfe80a3e18646620e9ded0ad159d9749baa numpy-1.21.3-cp38-cp38-macosx_11_0_arm64.whl
29fb3dcd0468b7715f8ce2c0c2d9bbbaf5ae686334951343a41bd8d155c6ea27 numpy-1.21.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
32437f0b275c1d09d9c3add782516413e98cd7c09e6baf4715cbce781fc29912 numpy-1.21.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
e606e6316911471c8d9b4618e082635cfe98876007556e89ce03d52ff5e8fcf0 numpy-1.21.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
a99a6b067e5190ac6d12005a4d85aa6227c5606fa93211f86b1dafb16233e57d numpy-1.21.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
dde972a1e11bb7b702ed0e447953e7617723760f420decb97305e66fb4afc54f numpy-1.21.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
fe52dbe47d9deb69b05084abd4b0df7abb39a3c51957c09f635520abd49b29dd numpy-1.21.3-cp38-cp38-win32.whl
75eb7cadc8da49302f5b659d40ba4f6d94d5045fbd9569c9d058e77b0514c9e4 numpy-1.21.3-cp38-cp38-win_amd64.whl
2a6ee9620061b2a722749b391c0d80a0e2ae97290f1b32e28d5a362e21941ee4 numpy-1.21.3-cp39-cp39-macosx_10_9_universal2.whl
5c4193f70f8069550a1788bd0cd3268ab7d3a2b70583dfe3b2e7f421e9aace06 numpy-1.21.3-cp39-cp39-macosx_10_9_x86_64.whl
28f15209fb535dd4c504a7762d3bc440779b0e37d50ed810ced209e5cea60d96 numpy-1.21.3-cp39-cp39-macosx_11_0_arm64.whl
c6c2d535a7beb1f8790aaa98fd089ceab2e3dd7ca48aca0af7dc60e6ef93ffe1 numpy-1.21.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
bffa2eee3b87376cc6b31eee36d05349571c236d1de1175b804b348dc0941e3f numpy-1.21.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
cc14e7519fab2a4ed87d31f99c31a3796e4e1fe63a86ebdd1c5a1ea78ebd5896 numpy-1.21.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
dd0482f3fc547f1b1b5d6a8b8e08f63fdc250c58ce688dedd8851e6e26cff0f3 numpy-1.21.3-cp39-cp39-win32.whl
300321e3985c968e3ae7fbda187237b225f3ffe6528395a5b7a5407f73cf093e numpy-1.21.3-cp39-cp39-win_amd64.whl
98339aa9911853f131de11010f6dd94c8cec254d3d1f7261528c3b3e3219f139 numpy-1.21.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
d0bba24083c01ae43457514d875f10d9ce4c1125d55b1e2573277b2410f2d068 numpy-1.21.3.tar.gz
63571bb7897a584ca3249c86dd01c10bcb5fe4296e3568b2e9c1a55356b6410e numpy-1.21.3.zip

1.21.2

Not secure
==========================

The NumPy 1.21.2 is maintenance release that fixes bugs discovered after
1.21.1. It also provides 64 bit manylinux Python 3.10.0rc1 wheels for
downstream testing. Note that Python 3.10 is not yet final. There is
also preliminary support for Windows on ARM64 builds, but there is no
OpenBLAS for that platform and no wheels are available.

The Python versions supported for this release are 3.7-3.9. The 1.21.x
series is compatible with Python 3.10.0rc1 and Python 3.10 will be
officially supported after it is released. The previous problems with
gcc-11.1 have been fixed by gcc-11.2, check your version if you are
using gcc-11.

Contributors
------------

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

- Bas van Beek
- Carl Johnsen +
- Charles Harris
- Gwyn Ciesla +
- Matthieu Dartiailh
- Matti Picus
- Niyas Sait +
- Ralf Gommers
- Sayed Adel
- Sebastian Berg

Pull requests merged
--------------------

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

- [\19497](https://github.com/numpy/numpy/pull/19497): MAINT: set Python version for 1.21.x to `<3.11`
- [\19533](https://github.com/numpy/numpy/pull/19533): BUG: Fix an issue wherein importing `numpy.typing` could raise
- [\19646](https://github.com/numpy/numpy/pull/19646): MAINT: Update Cython version for Python 3.10.
- [\19648](https://github.com/numpy/numpy/pull/19648): TST: Bump the python 3.10 test version from beta4 to rc1
- [\19651](https://github.com/numpy/numpy/pull/19651): TST: avoid distutils.sysconfig in runtests.py
- [\19652](https://github.com/numpy/numpy/pull/19652): MAINT: add missing dunder method to nditer type hints
- [\19656](https://github.com/numpy/numpy/pull/19656): BLD, SIMD: Fix testing extra checks when `-Werror` isn\'t applicable\...
- [\19657](https://github.com/numpy/numpy/pull/19657): BUG: Remove logical object ufuncs with bool output
- [\19658](https://github.com/numpy/numpy/pull/19658): MAINT: Include .coveragerc in source distributions to support\...
- [\19659](https://github.com/numpy/numpy/pull/19659): BUG: Fix bad write in masked iterator output copy paths
- [\19660](https://github.com/numpy/numpy/pull/19660): ENH: Add support for windows on arm targets
- [\19661](https://github.com/numpy/numpy/pull/19661): BUG: add base to templated arguments for platlib
- [\19662](https://github.com/numpy/numpy/pull/19662): BUG,DEP: Non-default UFunc signature/dtype usage should be deprecated
- [\19666](https://github.com/numpy/numpy/pull/19666): MAINT: Add Python 3.10 to supported versions.
- [\19668](https://github.com/numpy/numpy/pull/19668): TST,BUG: Sanitize path-separators when running `runtest.py`
- [\19671](https://github.com/numpy/numpy/pull/19671): BLD: load extra flags when checking for libflame
- [\19676](https://github.com/numpy/numpy/pull/19676): BLD: update circleCI docker image
- [\19677](https://github.com/numpy/numpy/pull/19677): REL: Prepare for 1.21.2 release.

Checksums
---------

MD5

c4d72c5f8aff59b5e48face558441e9f numpy-1.21.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
eb09d0bfc0bc39ce3e323182ae779fcb numpy-1.21.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e0bb19ea8cc13a5152085aa42d850077 numpy-1.21.2-cp37-cp37m-macosx_10_9_x86_64.whl
af7d21992179dfa3669a2a238b94a980 numpy-1.21.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
9acbaf0074af75d66ca8676b16cec03a numpy-1.21.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
86b755c7ece248e5586a6a58259aa432 numpy-1.21.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
b45fbbb0ffabcabcc6dc4cf957713d45 numpy-1.21.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
6f23a3050b1482f9708d36928348d75d numpy-1.21.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
ee45e263e6700b745c43511297385fe1 numpy-1.21.2-cp37-cp37m-win32.whl
6f587dc9ee9ec8700e77df4f3f987911 numpy-1.21.2-cp37-cp37m-win_amd64.whl
e500c1eae3903b7498886721b835d086 numpy-1.21.2-cp38-cp38-macosx_10_9_universal2.whl
ddef2b45ff5526e6314205108f2e3524 numpy-1.21.2-cp38-cp38-macosx_10_9_x86_64.whl
66b5a212ee2fe747cfc19f13dbfc2d15 numpy-1.21.2-cp38-cp38-macosx_11_0_arm64.whl
3ebfe9bcd744c57d3d189394fbbf04de numpy-1.21.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
155a35f990b2e673cb7b361c83fa2313 numpy-1.21.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
89e2268d8607b6b363337fafde9fe6c9 numpy-1.21.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e13968b5f61a3b2f33d4053da8ceaaf1 numpy-1.21.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
5bede1a84624d538d97513006f97fc06 numpy-1.21.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
351b5115ee56f1b598bfa9b479a2492c numpy-1.21.2-cp38-cp38-win32.whl
8a36334d9d183b1ef3e4d3d23b7d0cb8 numpy-1.21.2-cp38-cp38-win_amd64.whl
b6aee8cf57f84da10b38566bde93056c numpy-1.21.2-cp39-cp39-macosx_10_9_universal2.whl
20beaff42d793cb148621e0230d1b650 numpy-1.21.2-cp39-cp39-macosx_10_9_x86_64.whl
6e348361f3b8b75267dc27f3a6530944 numpy-1.21.2-cp39-cp39-macosx_11_0_arm64.whl
809bcd25dc485f31e2c13903d6ac748e numpy-1.21.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
ff4256d8940c6bdce48364af37f99072 numpy-1.21.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
b8b19e6667e39feef9f7f2e030945199 numpy-1.21.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
eedae53f1929779387476e7842dc5cb3 numpy-1.21.2-cp39-cp39-win32.whl
704f66b7ede6778283c33eea7a5b8b95 numpy-1.21.2-cp39-cp39-win_amd64.whl
8c5d2a0172f6f6861833a355b1bc57b0 numpy-1.21.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
55c11984b0a0ae28baa118052983f355 numpy-1.21.2.tar.gz
5638d5dae3ca387be562912312db842e numpy-1.21.2.zip

SHA256

52a664323273c08f3b473548bf87c8145b7513afd63e4ebba8496ecd3853df13 numpy-1.21.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
51a7b9db0a2941434cd930dacaafe0fc9da8f3d6157f9d12f761bbde93f46218 numpy-1.21.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9f2dc79c093f6c5113718d3d90c283f11463d77daa4e83aeeac088ec6a0bda52 numpy-1.21.2-cp37-cp37m-macosx_10_9_x86_64.whl
a55e4d81c4260386f71d22294795c87609164e22b28ba0d435850fbdf82fc0c5 numpy-1.21.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
426a00b68b0d21f2deb2ace3c6d677e611ad5a612d2c76494e24a562a930c254 numpy-1.21.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
298156f4d3d46815eaf0fcf0a03f9625fc7631692bd1ad851517ab93c3168fc6 numpy-1.21.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
09858463db6dd9f78b2a1a05c93f3b33d4f65975771e90d2cf7aadb7c2f66edf numpy-1.21.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
805459ad8baaf815883d0d6f86e45b3b0b67d823a8f3fa39b1ed9c45eaf5edf1 numpy-1.21.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
f545c082eeb09ae678dd451a1b1dbf17babd8a0d7adea02897a76e639afca310 numpy-1.21.2-cp37-cp37m-win32.whl
b160b9a99ecc6559d9e6d461b95c8eec21461b332f80267ad2c10394b9503496 numpy-1.21.2-cp37-cp37m-win_amd64.whl
a5109345f5ce7ddb3840f5970de71c34a0ff7fceb133c9441283bb8250f532a3 numpy-1.21.2-cp38-cp38-macosx_10_9_universal2.whl
209666ce9d4a817e8a4597cd475b71b4878a85fa4b8db41d79fdb4fdee01dde2 numpy-1.21.2-cp38-cp38-macosx_10_9_x86_64.whl
c01b59b33c7c3ba90744f2c695be571a3bd40ab2ba7f3d169ffa6db3cfba614f numpy-1.21.2-cp38-cp38-macosx_11_0_arm64.whl
e42029e184008a5fd3d819323345e25e2337b0ac7f5c135b7623308530209d57 numpy-1.21.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
7fdc7689daf3b845934d67cb221ba8d250fdca20ac0334fea32f7091b93f00d3 numpy-1.21.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
550564024dc5ceee9421a86fc0fb378aa9d222d4d0f858f6669eff7410c89bef numpy-1.21.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
bf75d5825ef47aa51d669b03ce635ecb84d69311e05eccea083f31c7570c9931 numpy-1.21.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
a9da45b748caad72ea4a4ed57e9cd382089f33c5ec330a804eb420a496fa760f numpy-1.21.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
e167b9805de54367dcb2043519382be541117503ce99e3291cc9b41ca0a83557 numpy-1.21.2-cp38-cp38-win32.whl
466e682264b14982012887e90346d33435c984b7fead7b85e634903795c8fdb0 numpy-1.21.2-cp38-cp38-win_amd64.whl
dd0e3651d210068d13e18503d75aaa45656eef51ef0b261f891788589db2cc38 numpy-1.21.2-cp39-cp39-macosx_10_9_universal2.whl
92a0ab128b07799dd5b9077a9af075a63467d03ebac6f8a93e6440abfea4120d numpy-1.21.2-cp39-cp39-macosx_10_9_x86_64.whl
fde50062d67d805bc96f1a9ecc0d37bfc2a8f02b937d2c50824d186aa91f2419 numpy-1.21.2-cp39-cp39-macosx_11_0_arm64.whl
640c1ccfd56724f2955c237b6ccce2e5b8607c3bc1cc51d3933b8c48d1da3723 numpy-1.21.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
5de64950137f3a50b76ce93556db392e8f1f954c2d8207f78a92d1f79aa9f737 numpy-1.21.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
b342064e647d099ca765f19672696ad50c953cac95b566af1492fd142283580f numpy-1.21.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
30fc68307c0155d2a75ad19844224be0f2c6f06572d958db4e2053f816b859ad numpy-1.21.2-cp39-cp39-win32.whl
b5e8590b9245803c849e09bae070a8e1ff444f45e3f0bed558dd722119eea724 numpy-1.21.2-cp39-cp39-win_amd64.whl
d96a6a7d74af56feb11e9a443150216578ea07b7450f7c05df40eec90af7f4a7 numpy-1.21.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
76af194fbc117934ec5bbe2ff15177adbd05aeed23f18ee209ed88edcd777e05 numpy-1.21.2.tar.gz
423216d8afc5923b15df86037c6053bf030d15cc9e3224206ef868c2d63dd6dc numpy-1.21.2.zip

1.21.1

Not secure
==========================

The NumPy 1.21.1 is maintenance release that fixes bugs discovered after
the 1.21.0 release and updates OpenBLAS to v0.3.17 to deal with problems
on arm64.

The Python versions supported for this release are 3.7-3.9. The 1.21.x
series is compatible with development Python 3.10. Python 3.10 will be
officially supported after it is released.

:warning: There are unresolved problems compiling NumPy 1.20.0 with gcc-11.1.

- Optimization level -O3 results in many incorrect
warnings when running the tests.
- On some hardware NumPY will hang in an infinite loop.


Contributors
------------

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

- Bas van Beek
- Charles Harris
- Ganesh Kathiresan
- Gregory R. Lee
- Hugo Defois +
- Kevin Sheppard
- Matti Picus
- Ralf Gommers
- Sayed Adel
- Sebastian Berg
- Thomas J. Fan

Pull requests merged
--------------------

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

- [\19311](https://github.com/numpy/numpy/pull/19311): REV,BUG: Replace `NotImplemented` with `typing.Any`
- [\19324](https://github.com/numpy/numpy/pull/19324): MAINT: Fixed the return-dtype of `ndarray.real` and `imag`
- [\19330](https://github.com/numpy/numpy/pull/19330): MAINT: Replace `"dtype[Any]"` with `dtype` in the definiton of\...
- [\19342](https://github.com/numpy/numpy/pull/19342): DOC: Fix some docstrings that crash pdf generation.
- [\19343](https://github.com/numpy/numpy/pull/19343): MAINT: bump scipy-mathjax
- [\19347](https://github.com/numpy/numpy/pull/19347): BUG: Fix arr.flat.index for large arrays and big-endian machines
- [\19348](https://github.com/numpy/numpy/pull/19348): ENH: add `numpy.f2py.get_include` function
- [\19349](https://github.com/numpy/numpy/pull/19349): BUG: Fix reference count leak in ufunc dtype handling
- [\19350](https://github.com/numpy/numpy/pull/19350): MAINT: Annotate missing attributes of `np.number` subclasses
- [\19351](https://github.com/numpy/numpy/pull/19351): BUG: Fix cast safety and comparisons for zero sized voids
- [\19352](https://github.com/numpy/numpy/pull/19352): BUG: Correct Cython declaration in random
- [\19353](https://github.com/numpy/numpy/pull/19353): BUG: protect against accessing base attribute of a NULL subarray
- [\19365](https://github.com/numpy/numpy/pull/19365): BUG, SIMD: Fix detecting AVX512 features on Darwin
- [\19366](https://github.com/numpy/numpy/pull/19366): MAINT: remove `print()`\'s in distutils template handling
- [\19390](https://github.com/numpy/numpy/pull/19390): ENH: SIMD architectures to show\_config
- [\19391](https://github.com/numpy/numpy/pull/19391): BUG: Do not raise deprecation warning for all nans in unique\...
- [\19392](https://github.com/numpy/numpy/pull/19392): BUG: Fix NULL special case in object-to-any cast code
- [\19430](https://github.com/numpy/numpy/pull/19430): MAINT: Use arm64-graviton2 for testing on travis
- [\19495](https://github.com/numpy/numpy/pull/19495): BUILD: update OpenBLAS to v0.3.17
- [\19496](https://github.com/numpy/numpy/pull/19496): MAINT: Avoid unicode characters in division SIMD code comments
- [\19499](https://github.com/numpy/numpy/pull/19499): BUG, SIMD: Fix infinite loop during count non-zero on GCC-11
- [\19500](https://github.com/numpy/numpy/pull/19500): BUG: fix a numpy.npiter leak in npyiter\_multi\_index\_set
- [\19501](https://github.com/numpy/numpy/pull/19501): TST: Fix a `GenericAlias` test failure for python 3.9.0
- [\19502](https://github.com/numpy/numpy/pull/19502): MAINT: Start testing with Python 3.10.0b3.
- [\19503](https://github.com/numpy/numpy/pull/19503): MAINT: Add missing dtype overloads for object- and ctypes-based\...
- [\19510](https://github.com/numpy/numpy/pull/19510): REL: Prepare for NumPy 1.21.1 release.

Checksums
---------

MD5

d88af78c155cb92ce5535724ed13ed73 numpy-1.21.1-cp37-cp37m-macosx_10_9_x86_64.whl
946e54ec9d174ec90db8ae07a4c4ae2f numpy-1.21.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
84d7f8534fa3ce1a8c2e2eab18e514de numpy-1.21.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
2e256d7862047967f2a7dbff8b8e9d6c numpy-1.21.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
4887ff09cc0652f3f1d9e0f40d1add63 numpy-1.21.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
bbe00679ce0ae484bb46776f64e00e32 numpy-1.21.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
b8eff5ba6bb920f3e65409abcfe7a55e numpy-1.21.1-cp37-cp37m-win32.whl
d6ab781ad4537a818663a37392bdf647 numpy-1.21.1-cp37-cp37m-win_amd64.whl
f974f7a90567e082b16817e1218eb059 numpy-1.21.1-cp38-cp38-macosx_10_9_universal2.whl
37fb814042195516db4c5eedc23f65ef numpy-1.21.1-cp38-cp38-macosx_10_9_x86_64.whl
2840e0ed51c8ebfb6fded7f1acfed810 numpy-1.21.1-cp38-cp38-macosx_11_0_arm64.whl
d87ed548450f324a3a6a3a230991e90a numpy-1.21.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
e5e0e271fb18986887920f24b9ad8ec3 numpy-1.21.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
f060727f195388df3f3c1e2c43a8d247 numpy-1.21.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
26b0cc05d6f59241f401c16a6fe9300e numpy-1.21.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
dac4489fdaeffd24d402a555e61b4087 numpy-1.21.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
c248a8f07bb458660274eab769dcc1e2 numpy-1.21.1-cp38-cp38-win32.whl
52386872b66b108de80b5447d0e3f6b1 numpy-1.21.1-cp38-cp38-win_amd64.whl
1a730aa7303421f31c2bca5a343010bb numpy-1.21.1-cp39-cp39-macosx_10_9_universal2.whl
141701393752d472456d4a15f9a554e4 numpy-1.21.1-cp39-cp39-macosx_10_9_x86_64.whl
33a9c001675f708aebc06f0a653378c1 numpy-1.21.1-cp39-cp39-macosx_11_0_arm64.whl
6b9482c5090f532285313ad2cf48d319 numpy-1.21.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
94fa7591ad4e51a85cb17bcec170b986 numpy-1.21.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
f580b2ce2fb9cead163bab3f1d88fba7 numpy-1.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
238930d877b5d8a012b5b1bbc994ebb1 numpy-1.21.1-cp39-cp39-win32.whl
4014c63ac2a1c3e1df95f76feb14816e numpy-1.21.1-cp39-cp39-win_amd64.whl
7cff22c1a04fdee710d38bd9468edbf1 numpy-1.21.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
033726e7ec59eea6b23307dcec35a37b numpy-1.21.1.tar.gz
1d016e05851a4ba85307f3246eb569aa numpy-1.21.1.zip

SHA256

38e8648f9449a549a7dfe8d8755a5979b45b3538520d1e735637ef28e8c2dc50 numpy-1.21.1-cp37-cp37m-macosx_10_9_x86_64.whl
fd7d7409fa643a91d0a05c7554dd68aa9c9bb16e186f6ccfe40d6e003156e33a numpy-1.21.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
a75b4498b1e93d8b700282dc8e655b8bd559c0904b3910b144646dbbbc03e062 numpy-1.21.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
1412aa0aec3e00bc23fbb8664d76552b4efde98fb71f60737c83efbac24112f1 numpy-1.21.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e46ceaff65609b5399163de5893d8f2a82d3c77d5e56d976c8b5fb01faa6b671 numpy-1.21.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
c6a2324085dd52f96498419ba95b5777e40b6bcbc20088fddb9e8cbb58885e8e numpy-1.21.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
73101b2a1fef16602696d133db402a7e7586654682244344b8329cdcbbb82172 numpy-1.21.1-cp37-cp37m-win32.whl
7a708a79c9a9d26904d1cca8d383bf869edf6f8e7650d85dbc77b041e8c5a0f8 numpy-1.21.1-cp37-cp37m-win_amd64.whl
95b995d0c413f5d0428b3f880e8fe1660ff9396dcd1f9eedbc311f37b5652e16 numpy-1.21.1-cp38-cp38-macosx_10_9_universal2.whl
635e6bd31c9fb3d475c8f44a089569070d10a9ef18ed13738b03049280281267 numpy-1.21.1-cp38-cp38-macosx_10_9_x86_64.whl
4a3d5fb89bfe21be2ef47c0614b9c9c707b7362386c9a3ff1feae63e0267ccb6 numpy-1.21.1-cp38-cp38-macosx_11_0_arm64.whl
8a326af80e86d0e9ce92bcc1e65c8ff88297de4fa14ee936cb2293d414c9ec63 numpy-1.21.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
791492091744b0fe390a6ce85cc1bf5149968ac7d5f0477288f78c89b385d9af numpy-1.21.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
0318c465786c1f63ac05d7c4dbcecd4d2d7e13f0959b01b534ea1e92202235c5 numpy-1.21.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
9a513bd9c1551894ee3d31369f9b07460ef223694098cf27d399513415855b68 numpy-1.21.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
91c6f5fc58df1e0a3cc0c3a717bb3308ff850abdaa6d2d802573ee2b11f674a8 numpy-1.21.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
978010b68e17150db8765355d1ccdd450f9fc916824e8c4e35ee620590e234cd numpy-1.21.1-cp38-cp38-win32.whl
9749a40a5b22333467f02fe11edc98f022133ee1bfa8ab99bda5e5437b831214 numpy-1.21.1-cp38-cp38-win_amd64.whl
d7a4aeac3b94af92a9373d6e77b37691b86411f9745190d2c351f410ab3a791f numpy-1.21.1-cp39-cp39-macosx_10_9_universal2.whl
d9e7912a56108aba9b31df688a4c4f5cb0d9d3787386b87d504762b6754fbb1b numpy-1.21.1-cp39-cp39-macosx_10_9_x86_64.whl
25b40b98ebdd272bc3020935427a4530b7d60dfbe1ab9381a39147834e985eac numpy-1.21.1-cp39-cp39-macosx_11_0_arm64.whl
8a92c5aea763d14ba9d6475803fc7904bda7decc2a0a68153f587ad82941fec1 numpy-1.21.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
05a0f648eb28bae4bcb204e6fd14603de2908de982e761a2fc78efe0f19e96e1 numpy-1.21.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
f01f28075a92eede918b965e86e8f0ba7b7797a95aa8d35e1cc8821f5fc3ad6a numpy-1.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
88c0b89ad1cc24a5efbb99ff9ab5db0f9a86e9cc50240177a571fbe9c2860ac2 numpy-1.21.1-cp39-cp39-win32.whl
01721eefe70544d548425a07c80be8377096a54118070b8a62476866d5208e33 numpy-1.21.1-cp39-cp39-win_amd64.whl
2d4d1de6e6fb3d28781c73fbde702ac97f03d79e4ffd6598b880b2d95d62ead4 numpy-1.21.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
504ced5d900fd5724c74ebf5dbb03572c04074bec9baa24b5646c66a2450e654 numpy-1.21.1.tar.gz
dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd numpy-1.21.1.zip

1.21

compared to 1.20 because of changes in promotion. When `signature` was
previously used, the casting check on inputs was relaxed, which could
lead to downcasting inputs unsafely especially if combined with
`casting="unsafe"`.

Casting is now guaranteed to be safe. If a signature is only partially
provided, for example using `signature=("float64", None, None)`, this
could lead to no loop being found (an error). In that case, it is
necessary to provide the complete signature to enforce casting the
inputs. If `dtype="float64"` is used or only outputs are set (e.g.
`signature=(None, None, "float64")` the is unchanged. We expect that
very few users are affected by this change.

Further, the meaning of `dtype="float64"` has been slightly modified and
now strictly enforces only the correct output (and not input) DTypes.
This means it is now always equivalent to:

signature=(None, None, "float64")

(If the ufunc has two inputs and one output). Since this could lead to
no loop being found in some cases, NumPy will normally also search for
the loop:

signature=("float64", "float64", "float64")

if the first search failed. In the future, this behaviour may be
customized to achieve the expected results for more complex ufuncs. (For
some universal functions such as `np.ldexp` inputs can have different
DTypes.)

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

Distutils forces strict floating point model on clang

NumPy distutils will now always add the `-ffp-exception-behavior=strict`
compiler flag when compiling with clang. Clang defaults to a non-strict
version, which allows the compiler to generate code that does not set
floating point warnings/errors correctly.

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

C API changes
-------------

Use of `ufunc->type_resolver` and \"type tuple\"

NumPy now normalizes the \"type tuple\" argument to the type resolver
functions before calling it. Note that in the use of this type resolver
is legacy behaviour and NumPy will not do so when possible. Calling
`ufunc->type_resolver` or `PyUFunc_DefaultTypeResolver` is strongly
discouraged and will now enforce a normalized type tuple if done. Note
that this does not affect providing a type resolver, which is expected
to keep working in most circumstances. If you have an unexpected
use-case for calling the type resolver, please inform the NumPy
developers so that a solution can be found.

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

New Features
------------

Added a mypy plugin for handling platform-specific `numpy.number` precisions

A [mypy](http://mypy-lang.org/) plugin is now available for
automatically assigning the (platform-dependent) precisions of certain
`numpy.number` subclasses, including the likes of
`numpy.int_`, `numpy.intp` and
`numpy.longlong`. See the documentation on
`scalar types <arrays.scalars.built-in>`{.interpreted-text role="ref"}
for a comprehensive overview of the affected classes.

Note that while usage of the plugin is completely optional, without it
the precision of above-mentioned classes will be inferred as
`typing.Any`.

To enable the plugin, one must add it to their mypy [configuration
file](https://mypy.readthedocs.io/en/stable/config_file.html):

{.ini}
[mypy]
plugins = numpy.typing.mypy_plugin


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

Let the mypy plugin manage extended-precision `numpy.number` subclasses

The [mypy](http://mypy-lang.org/) plugin, introduced in
[numpy/numpy\17843](https://github.com/numpy/numpy/pull/17843), has
been expanded: the plugin now removes annotations for platform-specific
extended-precision types that are not available to the platform in
question. For example, it will remove `numpy.float128`
when not available.

Without the plugin *all* extended-precision types will, as far as mypy
is concerned, be available on all platforms.

To enable the plugin, one must add it to their mypy [configuration
file](https://mypy.readthedocs.io/en/stable/config_file.html):

{.ini}
[mypy]
plugins = numpy.typing.mypy_plugin


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

New `min_digits` argument for printing float values

A new `min_digits` argument has been added to the dragon4 float printing
functions `numpy.format_float_positional` and
`numpy.format_float_scientific` . This kwd guarantees
that at least the given number of digits will be printed when printing
in unique=True mode, even if the extra digits are unnecessary to
uniquely specify the value. It is the counterpart to the precision
argument which sets the maximum number of digits to be printed. When
unique=False in fixed precision mode, it has no effect and the precision
argument fixes the number of digits.

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

f2py now recognizes Fortran abstract interface blocks

`numpy.f2py` can now parse abstract interface blocks.

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

BLAS and LAPACK configuration via environment variables

Autodetection of installed BLAS and LAPACK libraries can be bypassed by
using the `NPY_BLAS_LIBS` and `NPY_LAPACK_LIBS` environment variables.
Instead, the link flags in these environment variables will be used
directly, and the language is assumed to be F77. This is especially
useful in automated builds where the BLAS and LAPACK that are installed
are known exactly. A use case is replacing the actual implementation at
runtime via stub library links.

If `NPY_CBLAS_LIBS` is set (optional in addition to `NPY_BLAS_LIBS`),
this will be used as well, by defining `HAVE_CBLAS` and appending the
environment variable content to the link flags.

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

A runtime-subcriptable alias has been added for `ndarray`

`numpy.typing.NDArray` has been added, a runtime-subscriptable alias for
`np.ndarray[Any, np.dtype[~Scalar]]`. The new type alias can be used for
annotating arrays with a given dtype and unspecified shape. ^1^

^1^ NumPy does not support the annotating of array shapes as of 1.21,
this is expected to change in the future though (see
`646`{.interpreted-text role="pep"}).

Examples

{.python}
>>> import numpy as np
>>> import numpy.typing as npt

>>> print(npt.NDArray)
numpy.ndarray[typing.Any, numpy.dtype[~ScalarType]]

>>> print(npt.NDArray[np.float64])
numpy.ndarray[typing.Any, numpy.dtype[numpy.float64]]

>>> NDArrayInt = npt.NDArray[np.int_]
>>> a: NDArrayInt = np.arange(10)

>>> def func(a: npt.ArrayLike) -> npt.NDArray[Any]:
... return np.array(a)


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

Improvements
------------

Arbitrary `period` option for `numpy.unwrap`

The size of the interval over which phases are unwrapped is no longer
restricted to `2 * pi`. This is especially useful for unwrapping
degrees, but can also be used for other intervals.

{.python}
>>> phase_deg = np.mod(np.linspace(0,720,19), 360) - 180
>>> phase_deg
array([-180., -140., -100., -60., -20., 20., 60., 100., 140.,
-180., -140., -100., -60., -20., 20., 60., 100., 140.,
-180.])

>>> unwrap(phase_deg, period=360)
array([-180., -140., -100., -60., -20., 20., 60., 100., 140.,
180., 220., 260., 300., 340., 380., 420., 460., 500.,
540.])


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

`np.unique` now returns single `NaN`

When `np.unique` operated on an array with multiple `NaN` entries, its
return included a `NaN` for each entry that was `NaN` in the original
array. This is now improved such that the returned array contains just
one `NaN` as the last element.

Also for complex arrays all `NaN` values are considered equivalent (no
matter whether the `NaN` is in the real or imaginary part). As the
representant for the returned array the smallest one in the
lexicographical order is chosen - see `np.sort` for how the
lexicographical order is defined for complex arrays.

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

`Generator.rayleigh` and `Generator.geometric` performance improved

The performance of Rayleigh and geometric random variate generation in
`Generator` has improved. These are both transformation of exponential
random variables and the slow log-based inverse cdf transformation has
been replaced with the Ziggurat-based exponential variate generator.

This change breaks the stream of variates generated when variates from
either of these distributions are produced.

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

Placeholder annotations have been improved

All placeholder annotations, that were previously annotated as
`typing.Any`, have been improved. Where appropiate they have been
replaced with explicit function definitions, classes or other
miscellaneous objects.

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

Performance improvements
------------------------

Improved performance in integer division of NumPy arrays

Integer division of NumPy arrays now uses
[libdivide](https://libdivide.com/) when the divisor is a constant. With
the usage of libdivide and other minor optimizations, there is a large
speedup. The `//` operator and `np.floor_divide` makes use of the new
changes.

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

Improve performance of `np.save` and `np.load` for small arrays

`np.save` is now a lot faster for small arrays.

`np.load` is also faster for small arrays, but only when serializing
with a version \>= `(3, 0)`.

Both are done by removing checks that are only relevant for Python 2,
while still maintaining compatibility with arrays which might have been
created by Python 2.

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

Changes
-------

`numpy.piecewise` output class now matches the input class

When `numpy.ndarray` subclasses are used on input to
`numpy.piecewise`, they are passed on to the functions.
The output will now be of the same subclass as well.

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

Enable Accelerate Framework

With the release of macOS 11.3, several different issues that numpy was
encountering when using Accelerate Framework\'s implementation of BLAS
and LAPACK should be resolved. This change enables the Accelerate
Framework as an option on macOS. If additional issues are found, please
file a bug report against Accelerate using the developer feedback
assistant tool (<https://developer.apple.com/bug-reporting/>). We intend
to address issues promptly and plan to continue supporting and updating
our BLAS and LAPACK libraries.

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

Checksums
---------

MD5

9ccf85701eb21a5ea2fb477136ab4247 numpy-1.21.0rc1-cp37-cp37m-macosx_10_9_x86_64.whl
5efabc4661fe181dc6e1c65ec635f469 numpy-1.21.0rc1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
15dba3c0e6a1018d964101dd0da643f0 numpy-1.21.0rc1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
2d950f3681f6ca81446e1ef1ce965000 numpy-1.21.0rc1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
7f6754af0b06c1847a92430fb34f49ca numpy-1.21.0rc1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
26a2ed6c94f1e679e2356c2e34d5bca0 numpy-1.21.0rc1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
f83946bc549f52967ad167770ce7f028 numpy-1.21.0rc1-cp37-cp37m-win32.whl
745946f9036969a4574f5dfcdbf73d00 numpy-1.21.0rc1-cp37-cp37m-win_amd64.whl
9aec39edd809b0ce0f024511ad670892 numpy-1.21.0rc1-cp38-cp38-macosx_10_9_x86_64.whl
11cce9128d4c41675383ff5ffebc5f80 numpy-1.21.0rc1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
b9baa8e1cc031b8f63122e056f5a9d01 numpy-1.21.0rc1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
ed671703310ffc4a446c9a7b2227045c numpy-1.21.0rc1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
77dfe86f5af5702c6115cec33211a5d0 numpy-1.21.0rc1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
84971cae75e47951f451b889958220f7 numpy-1.21.0rc1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
566c652f9cdb10f55777f030ce857824 numpy-1.21.0rc1-cp38-cp38-win32.whl
c09a49c8aef8a87267322343a1abaaf2 numpy-1.21.0rc1-cp38-cp38-win_amd64.whl
7755038d0c4a996c912c967b34a2aaff numpy-1.21.0rc1-cp39-cp39-macosx_10_9_universal2.whl
a51746adf928b66b7ce6f51afe87fa5f numpy-1.21.0rc1-cp39-cp39-macosx_10_9_x86_64.whl
3da1f90027f433e13cef63d12bdc6142 numpy-1.21.0rc1-cp39-cp39-macosx_11_0_arm64.whl
eff3767616a49ca7bec3f44476f07be8 numpy-1.21.0rc1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
c09d61a8afbc1ae1ffa5a4ba0f53616b numpy-1.21.0rc1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
7861468db5b918ee7188871daad34f1a numpy-1.21.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
9d416859d0fe38b80d63ea1e368133d9 numpy-1.21.0rc1-cp39-cp39-win32.whl
d92e6574a0656f170d76f377f41f8dd3 numpy-1.21.0rc1-cp39-cp39-win_amd64.whl
8d8aa5cab5d2e6d94a4a09c33461776e numpy-1.21.0rc1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
32a9675f747267c5e0bbe87a79ecc31b numpy-1.21.0rc1.tar.gz
2369c08c213ba96377b33fe90f53c509 numpy-1.21.0rc1.zip

SHA256

19e076e4d9b66fd63477e907ed2a4c6662bbcd5a74b2cf50a9b0753afb4ee167 numpy-1.21.0rc1-cp37-cp37m-macosx_10_9_x86_64.whl
8b92d27414779f568484c4a0aeddbff8e1fa9d9403cff122161fa25bc94e7f44 numpy-1.21.0rc1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
a1c3737f659085eeaab83e016569368157d8d46d6a3be317c864dadd3c28fa42 numpy-1.21.0rc1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
35180d82f457f0857963a486c16bd472582f217827c839dcb3a3de298b532f11 numpy-1.21.0rc1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
438129e0d1dd03d235ae25c45b5621888d699935cf5b813d08a0bb2e7221c9d4 numpy-1.21.0rc1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
63b3d66f5610c61d3d1b47687b99584fdf7734192344814d80f2670e0c7b05ef numpy-1.21.0rc1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
4c6395cc3eefdd1c9ede1c84ad8e728edfc97ea506b04b9600d4cb61c7b80cb4 numpy-1.21.0rc1-cp37-cp37m-win32.whl
9abfe8ef4f8898d0448de735a3270de466553b61de8e6ddc31fc8770003fdfa4 numpy-1.21.0rc1-cp37-cp37m-win_amd64.whl
7ada705e3e9364f874c41fc370c23247f4c1466888dfd61ac5ec9277524928c2 numpy-1.21.0rc1-cp38-cp38-macosx_10_9_x86_64.whl
6ed13704d67934d458abeaacd96079bb8ae5f0ea000765777449e94288590097 numpy-1.21.0rc1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
305aff30d8976eccf14751a1095dac0e60e0c071f1fb82e6c53948fc5b6b346c numpy-1.21.0rc1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
a3a480ac4077c868124427456c6a64dcb7da12817bd3e770006980a4fd0d2526 numpy-1.21.0rc1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
80929da75a678433dcc8c79db94eb373408778d17fe9b49c4521501a5923a3e2 numpy-1.21.0rc1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
234fc98750ada00204ebf3acd94baea213c6f9f0ff6b097d06952f734f67e58a numpy-1.21.0rc1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
da0797286c299c426e5b6cf03ca9e1dab0dace161b64d7a1879c4d15eb12ceba numpy-1.21.0rc1-cp38-cp38-win32.whl
17f3ac57e19740f1c064c284ad361148be245fabbd6390bec3ffa814fb287fd6 numpy-1.21.0rc1-cp38-cp38-win_amd64.whl
57410c33aef7b3fd4ef2e5f09f1c084a21021055c74034748b8d2957a72dad01 numpy-1.21.0rc1-cp39-cp39-macosx_10_9_universal2.whl
4796c196faa5f5418ce9a8ee0e993c925755e505778e32442263422c4fe88013 numpy-1.21.0rc1-cp39-cp39-macosx_10_9_x86_64.whl
97faf00577c74a4f4b6304c1b7f6223fb0825d1a7cfaad5601cbeadd8282cd70 numpy-1.21.0rc1-cp39-cp39-macosx_11_0_arm64.whl
56d67935694d9270e0a9bcfd6b9169f81ef2c2e5e154acd57ac7afe2d48d7b29 numpy-1.21.0rc1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
b58c8c1ea4b80a5cbc756a11e446eec16088ebd9e080e71a64c458f6c07cb3c7 numpy-1.21.0rc1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
723fff54844d9c1e01703ed2bc177f892fd89530b7671e8191a639d799cd75b7 numpy-1.21.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
dcc194082d94c45fe8a005861cdce6ec33b51c1dccf2a7e6044b33038b82f579 numpy-1.21.0rc1-cp39-cp39-win32.whl
ff442e4fe6e66019b2070352e0cd6e7dde994ff1267d45343b587ed621e4ec47 numpy-1.21.0rc1-cp39-cp39-win_amd64.whl
068cfc78963ce8b9dd2dc7ad1f2d5ebebc47e10103ea0166074e6bd31e78aeb8 numpy-1.21.0rc1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
3baf619f71612da80628e63def8d901832f76a9d396fde2613ea3d73277bc08d numpy-1.21.0rc1.tar.gz
f5e7cd7068df4aa803be68edc7c6fc5e3ed934d53a7ab1f21539fb5925e0172e numpy-1.21.0rc1.zip

1.21.0

Not secure
==========================

The NumPy 1.21.0 release highlights are

- continued SIMD work covering more functions and platforms,
- initial work on the new dtype infrastructure and casting,
- improved documentation,
- improved annotations,
- the new `PCG64DXSM` bitgenerator for random numbers.

In addition there are the usual large number of bug fixes and other
improvements.

The Python versions supported for this release are 3.7-3.9. Official
support for Python 3.10 will be added when it is released.

New functions
-------------

Add `PCG64DXSM` `BitGenerator`

Uses of the `PCG64` `BitGenerator` in a massively-parallel context have
been shown to have statistical weaknesses that were not apparent at the
first release in numpy 1.17. Most users will never observe this weakness
and are safe to continue to use `PCG64`. We have introduced a new
`PCG64DXSM` `BitGenerator` that will eventually become the new default
`BitGenerator` implementation used by `default_rng` in future releases.
`PCG64DXSM` solves the statistical weakness while preserving the
performance and the features of `PCG64`.

See `upgrading-pcg64`{.interpreted-text role="ref"} for more details.

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

Expired deprecations
--------------------

- The `shape` argument of `numpy.unravel_index` cannot be
passed as `dims` keyword argument anymore. (Was deprecated in NumPy
1.16.)

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

- The function `PyUFunc_GenericFunction` has been disabled. It was
deprecated in NumPy 1.19. Users should call the ufunc directly using
the Python API.

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

- The function `PyUFunc_SetUsesArraysAsData` has been disabled. It was
deprecated in NumPy 1.19.

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

- The class `PolyBase` has been removed (deprecated in numpy 1.9.0).
Please use the abstract `ABCPolyBase` class instead.

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

- The unused `PolyError` and `PolyDomainError` exceptions are removed.

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

Deprecations
------------

Inexact matches for `numpy.convolve` and `numpy.correlate` are deprecated

`numpy.convolve` and `numpy.correlate` now
emit a warning when there are case insensitive and/or inexact matches
found for `mode` argument in the functions. Pass full `"same"`,
`"valid"`, `"full"` strings instead of `"s"`, `"v"`, `"f"` for the
`mode` argument.

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

`np.typeDict` has been formally deprecated

`np.typeDict` is a deprecated alias for `np.sctypeDict` and has been so
for over 14 years ([6689502](https://github.com/numpy/numpy/commit/668950285c407593a368336ff2e737c5da84af7d)).
A deprecation warning will now be issued whenever getting `np.typeDict`.

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

Exceptions will be raised during array-like creation

When an object raised an exception during access of the special
attributes `__array__` or `__array_interface__`, this exception was
usually ignored. A warning is now given when the exception is anything
but AttributeError. To silence the warning, the type raising the
exception has to be adapted to raise an `AttributeError`.

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

Four `ndarray.ctypes` methods have been deprecated

Four methods of the `ndarray.ctypes` object have been
deprecated, as they are (undocumentated) implementation artifacts of
their respective properties.

The methods in question are:

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

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

Future Changes
--------------

Promotion of strings with numbers and bools will be deprecated

Any promotion of numbers and strings is deprecated and will give a
`FutureWarning` the main affected functionalities are:

- `numpy.promote_types` and
`numpy.result_type` which will raise an error in this
case in the future.
- `numpy.concatenate` will raise an error when
concatenating a string and numeric array. You can use `dtype="S"` to
explicitly request a string result.
- `numpy.array` and related functions will start
returning `object` arrays because these functions use `object` as a
fallback when no common dtype can be found. However, it may happen
that future releases of NumPy will generally error in these cases.

This will mainly affect code such as:

np.asarray(['string', 0])

and:

np.concatenate((['string'], [0]))

in both cases adding `dtype="U"` or `dtype="S"` will give the previous
(string) result, while `dtype=object` will ensure an array with object
dtype is returned.

Comparisons, universal functions, and casting are not affected by this.

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

Compatibility notes
-------------------

Error type changes in universal functions

The universal functions may now raise different errors on invalid input
in some cases. The main changes should be that a `RuntimeError` was
replaced with a more fitting `TypeError`. When multiple errors were
present in the same call, NumPy may now raise a different one.

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

`__array_ufunc__` argument validation

NumPy will now partially validate arguments before calling
`__array_ufunc__`. Previously, it was possible to pass on invalid
arguments (such as a non-existing keyword argument) when dispatch was
known to occur.

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

`__array_ufunc__` and additional positional arguments

Previously, all positionally passed arguments were checked for
`__array_ufunc__` support. In the case of `reduce`, `accumulate`, and
`reduceat` all arguments may be passed by position. This means that when
they were passed by position, they could previously have been asked to
handle the ufunc call via `__array_ufunc__`. Since this depended on the
way the arguments were passed (by position or by keyword), NumPy will
now only dispatch on the input and output array. For example, NumPy will
never dispatch on the `where` array in a reduction such as
`np.add.reduce`.

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

Validate input values in `Generator.uniform`

Checked that `high - low >= 0` in `np.random.Generator.uniform`. Raises
`ValueError` if `low > high`. Previously out-of-order inputs were
accepted and silently swapped, so that if `low > high`, the value
generated was `high + (low - high) * random()`.

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

`/usr/include` removed from default include paths

The default include paths when building a package with `numpy.distutils`
no longer include `/usr/include`. This path is normally added by the
compiler, and hardcoding it can be problematic. In case this causes a
problem, please open an issue. A workaround is documented in PR 18658.

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

Changes to comparisons with `dtype=...`

When the `dtype=` (or `signature`) arguments to comparison ufuncs
(`equal`, `less`, etc.) is used, this will denote the desired output
dtype in the future. This means that:

> np.equal(2, 3, dtype=object)

will give a `FutureWarning` that it will return an `object` array in the
future, which currently happens for:

> np.equal(None, None, dtype=object)

due to the fact that `np.array(None)` is already an object array. (This
also happens for some other dtypes.)

Since comparisons normally only return boolean arrays, providing any
other dtype will always raise an error in the future and give a
`DeprecationWarning` now.

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

Changes to `dtype` and `signature` arguments in ufuncs

The universal function arguments `dtype` and `signature` which are also
valid for reduction such as `np.add.reduce` (which is the implementation
for `np.sum`) will now issue a warning when the `dtype` provided is not
a \"basic\" dtype.

NumPy almost always ignored metadata, byteorder or time units on these
inputs. NumPy will now always ignore it and raise an error if byteorder
or time unit changed. The following are the most important examples of
changes which will give the error. In some cases previously the
information stored was not ignored, in all of these an error is now
raised:

Previously ignored the byte-order (affect if non-native)
np.add(3, 5, dtype=">i32")

The biggest impact is for timedelta or datetimes:
arr = np.arange(10, dtype="m8[s]")
The examples always ignored the time unit "ns":
np.add(arr, arr, dtype="m8[ns]")
np.maximum.reduce(arr, dtype="m8[ns]")

The following previously did use "ns" (as opposed to `arr.dtype`)
np.add(3, 5, dtype="m8[ns]") Now return generic time units
np.maximum(arr, arr, dtype="m8[ns]") Now returns "s" (from `arr`)

The same applies for functions like `np.sum` which use these internally.
This change is necessary to achieve consistent handling within NumPy.

If you run into these, in most cases pass for example
`dtype=np.timedelta64` which clearly denotes a general `timedelta64`
without any unit or byte-order defined. If you need to specify the
output dtype precisely, you may do so by either casting the inputs or
providing an output array using `out=`.

NumPy may choose to allow providing an exact output `dtype` here in the
future, which would be preceded by a `FutureWarning`.

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

Ufunc `signature=...` and `dtype=` generalization and `casting`

The behaviour for `np.ufunc(1.0, 1.0, signature=...)` or

1.21.0rc2

Page 11 of 23

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.