Numpy

Latest version: v2.2.1

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

Scan your dependencies

Page 16 of 23

1.17.4

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

This release contains fixes for bugs reported against NumPy 1.17.3 along with
some build improvements. The Python versions supported in this release
are 3.5-3.8.

Downstream developers should use Cython >= 0.29.13 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid errors on the Skylake architecture.


Highlights
==========

* Fixed `np.random.random_integers` biased generation of 8 and 16 bit integers.
* Fixed `np.einsum` regression on Power9 and z/Linux.
* Fixed histogram problem with signed integer arrays.


Contributors
============

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

* Charles Harris
* Chris Burr +
* Matti Picus
* Qiming Sun +
* Warren Weckesser


Pull requests merged
====================

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

* 14758: BLD: declare support for python 3.8
* 14781: BUG: random: biased samples from integers() with 8 or 16 bit...
* 14851: BUG: Fix _ctypes class circular reference. (13808)
* 14852: BLD: add 'apt update' to shippable
* 14855: BUG: Fix `np.einsum` errors on Power9 Linux and z/Linux
* 14857: BUG: lib: Fix histogram problem with signed integer arrays.
* 14858: BLD: Prevent -flto from optimising long double representation...
* 14866: MAINT: move buffer.h -> npy_buffer.h to avoid conflicts


Checksums
=========

MD5
---

1d5b9a989a22e2c5d0774d9a8e19f3db numpy-1.17.4-cp35-cp35m-macosx_10_6_intel.whl
3b3fc8a8db5a026349b3ead44e755bc5 numpy-1.17.4-cp35-cp35m-manylinux1_i686.whl
bfcafd2994423e9ed8337eb4a10cc885 numpy-1.17.4-cp35-cp35m-manylinux1_x86_64.whl
8196de4edb9f37578acab2749e2af61c numpy-1.17.4-cp35-cp35m-win32.whl
71292c5b45feec7cae81a1fc6272b0e0 numpy-1.17.4-cp35-cp35m-win_amd64.whl
39cfbfdf236a20f9901b918b39e20e54 numpy-1.17.4-cp36-cp36m-macosx_10_9_x86_64.whl
8cff96c6bc944b44b7232d72244e0838 numpy-1.17.4-cp36-cp36m-manylinux1_i686.whl
d62a4e3880432bb8deec3a51bcc8a30e numpy-1.17.4-cp36-cp36m-manylinux1_x86_64.whl
aaa948d1ef36659450791229a966ed19 numpy-1.17.4-cp36-cp36m-win32.whl
e4482c52d63ab698d2e81ad71903b64b numpy-1.17.4-cp36-cp36m-win_amd64.whl
4fadb49558c6089d8f8f32d775de91ae numpy-1.17.4-cp37-cp37m-macosx_10_9_x86_64.whl
2e3a09d2aefd90856600c821db49cf99 numpy-1.17.4-cp37-cp37m-manylinux1_i686.whl
2f0527f8eedcb2b3d83912dd254356f9 numpy-1.17.4-cp37-cp37m-manylinux1_x86_64.whl
aded41f748a1dc3f71924200c3fe1bc0 numpy-1.17.4-cp37-cp37m-win32.whl
34a187a48ceb4378ac28c6951d7f8dd6 numpy-1.17.4-cp37-cp37m-win_amd64.whl
f5da7b0b94eacde2898654cfc25e8e78 numpy-1.17.4-cp38-cp38-macosx_10_9_x86_64.whl
08f4a5d6ea64c3f1f22ff9e4da4b55dd numpy-1.17.4-cp38-cp38-manylinux1_i686.whl
bafe3eb23ae8cb6f062e55c7aab52a98 numpy-1.17.4-cp38-cp38-manylinux1_x86_64.whl
0f1add30eb00bf40e5456e8ab10b5342 numpy-1.17.4-cp38-cp38-win32.whl
11649cda484b4d0d4426c3dab2c8ed5f numpy-1.17.4-cp38-cp38-win_amd64.whl
9147c3ee75e58d657b5b8b5a4f3564e0 numpy-1.17.4.tar.gz
d7d3563cca0b99ba68a3f064a9e46ebe numpy-1.17.4.zip

SHA256
------

ede47b98de79565fcd7f2decb475e2dcc85ee4097743e551fe26cfc7eb3ff143 numpy-1.17.4-cp35-cp35m-macosx_10_6_intel.whl
43bb4b70585f1c2d153e45323a886839f98af8bfa810f7014b20be714c37c447 numpy-1.17.4-cp35-cp35m-manylinux1_i686.whl
c7354e8f0eca5c110b7e978034cd86ed98a7a5ffcf69ca97535445a595e07b8e numpy-1.17.4-cp35-cp35m-manylinux1_x86_64.whl
64874913367f18eb3013b16123c9fed113962e75d809fca5b78ebfbb73ed93ba numpy-1.17.4-cp35-cp35m-win32.whl
6ca4000c4a6f95a78c33c7dadbb9495c10880be9c89316aa536eac359ab820ae numpy-1.17.4-cp35-cp35m-win_amd64.whl
75fd817b7061f6378e4659dd792c84c0b60533e867f83e0d1e52d5d8e53df88c numpy-1.17.4-cp36-cp36m-macosx_10_9_x86_64.whl
7d81d784bdbed30137aca242ab307f3e65c8d93f4c7b7d8f322110b2e90177f9 numpy-1.17.4-cp36-cp36m-manylinux1_i686.whl
fe39f5fd4103ec4ca3cb8600b19216cd1ff316b4990f4c0b6057ad982c0a34d5 numpy-1.17.4-cp36-cp36m-manylinux1_x86_64.whl
e467c57121fe1b78a8f68dd9255fbb3bb3f4f7547c6b9e109f31d14569f490c3 numpy-1.17.4-cp36-cp36m-win32.whl
8d0af8d3664f142414fd5b15cabfd3b6cc3ef242a3c7a7493257025be5a6955f numpy-1.17.4-cp36-cp36m-win_amd64.whl
9679831005fb16c6df3dd35d17aa31dc0d4d7573d84f0b44cc481490a65c7725 numpy-1.17.4-cp37-cp37m-macosx_10_9_x86_64.whl
acbf5c52db4adb366c064d0b7c7899e3e778d89db585feadd23b06b587d64761 numpy-1.17.4-cp37-cp37m-manylinux1_i686.whl
3d52298d0be333583739f1aec9026f3b09fdfe3ddf7c7028cb16d9d2af1cca7e numpy-1.17.4-cp37-cp37m-manylinux1_x86_64.whl
475963c5b9e116c38ad7347e154e5651d05a2286d86455671f5b1eebba5feb76 numpy-1.17.4-cp37-cp37m-win32.whl
0c0763787133dfeec19904c22c7e358b231c87ba3206b211652f8cbe1241deb6 numpy-1.17.4-cp37-cp37m-win_amd64.whl
683828e50c339fc9e68720396f2de14253992c495fdddef77a1e17de55f1decc numpy-1.17.4-cp38-cp38-macosx_10_9_x86_64.whl
e2e9d8c87120ba2c591f60e32736b82b67f72c37ba88a4c23c81b5b8fa49c018 numpy-1.17.4-cp38-cp38-manylinux1_i686.whl
a8f67ebfae9f575d85fa859b54d3bdecaeece74e3274b0b5c5f804d7ca789fe1 numpy-1.17.4-cp38-cp38-manylinux1_x86_64.whl
0a7a1dd123aecc9f0076934288ceed7fd9a81ba3919f11a855a7887cbe82a02f numpy-1.17.4-cp38-cp38-win32.whl
ada4805ed51f5bcaa3a06d3dd94939351869c095e30a2b54264f5a5004b52170 numpy-1.17.4-cp38-cp38-win_amd64.whl
fb0415475e673cb9a6dd816df999e0ab9f86fa3af2b1770944e7288d2bea4ac9 numpy-1.17.4.tar.gz
f58913e9227400f1395c7b800503ebfdb0772f1c33ff8cb4d6451c06cabdf316 numpy-1.17.4.zip

1.17.3

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

This release contains fixes for bugs reported against NumPy 1.17.2 along with a
some documentation improvements. The Python versions supported in this release
are 3.5-3.8.

Downstream developers should use Cython >= 0.29.13 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid errors on the Skylake architecture.


Highlights
==========

- Wheels for Python 3.8
- Boolean ``matmul`` fixed to use booleans instead of integers.


Compatibility notes
===================

- The seldom used ``PyArray_DescrCheck`` macro has been changed/fixed.


Contributors
============

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

* Allan Haldane
* Charles Harris
* Kevin Sheppard
* Matti Picus
* Ralf Gommers
* Sebastian Berg
* Warren Weckesser


Pull requests merged
====================

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

* 14456: MAINT: clean up pocketfft modules inside numpy.fft namespace.
* 14463: BUG: random.hypergeometic assumes npy_long is npy_int64, hung...
* 14502: BUG: random: Revert gh-14458 and refix gh-14557.
* 14504: BUG: add a specialized loop for boolean matmul.
* 14506: MAINT: Update pytest version for Python 3.8
* 14512: DOC: random: fix doc linking, was referencing private submodules.
* 14513: BUG,MAINT: Some fixes and minor cleanup based on clang analysis
* 14515: BUG: Fix randint when range is 2**32
* 14519: MAINT: remove the entropy c-extension module
* 14563: DOC: remove note about Pocketfft license file (non-existing here).
* 14578: BUG: random: Create a legacy implementation of random.binomial.
* 14687: BUG: properly define PyArray_DescrCheck

Checksums
=========

MD5
---

7e96dd5ca587fa647d21628072f08751 numpy-1.17.3-cp35-cp35m-macosx_10_6_intel.whl
f5fd3a434d9e426c9f01ca5669e84973 numpy-1.17.3-cp35-cp35m-manylinux1_i686.whl
d4520794f05e6466a1064e046b4ade2c numpy-1.17.3-cp35-cp35m-manylinux1_x86_64.whl
67967e337b8378c92af9c2b6926b6dcd numpy-1.17.3-cp35-cp35m-win32.whl
341b29b85c5305edd3f5ca9d9981f1b4 numpy-1.17.3-cp35-cp35m-win_amd64.whl
7d9492ee0fbe8292518af104772bcee0 numpy-1.17.3-cp36-cp36m-macosx_10_9_x86_64.whl
b0f1a9b0da552e2baa2e6db4668efee8 numpy-1.17.3-cp36-cp36m-manylinux1_i686.whl
8b9c50124ae13279e9969fc0cf3b5e5f numpy-1.17.3-cp36-cp36m-manylinux1_x86_64.whl
428766619877efec34ba224d9252396c numpy-1.17.3-cp36-cp36m-win32.whl
a2fd25bf087e7765a4322ef3fa7f87b6 numpy-1.17.3-cp36-cp36m-win_amd64.whl
98eb0ec4fe00f9f3309f2e523e76e36e numpy-1.17.3-cp37-cp37m-macosx_10_9_x86_64.whl
415f086791be02d658a2800fa25874e4 numpy-1.17.3-cp37-cp37m-manylinux1_i686.whl
3f5fd3e63dc84db7dd3745b007faea46 numpy-1.17.3-cp37-cp37m-manylinux1_x86_64.whl
3f7ba813f7318d9671da66c610ab1e91 numpy-1.17.3-cp37-cp37m-win32.whl
deb55760769373ad1da9844df8b9c865 numpy-1.17.3-cp37-cp37m-win_amd64.whl
964b1cdad1cf20c63461246fe0638956 numpy-1.17.3-cp38-cp38-macosx_10_9_x86_64.whl
ece34643fc0c42801a8d3a53708f09ed numpy-1.17.3-cp38-cp38-manylinux1_i686.whl
081fd68219088577857ebd265e963d1e numpy-1.17.3-cp38-cp38-manylinux1_x86_64.whl
a231efeb2cfe69cf94764ccecba73d50 numpy-1.17.3-cp38-cp38-win32.whl
1c548f96188826e6999d3ba3fde99cf9 numpy-1.17.3-cp38-cp38-win_amd64.whl
48d6d97d6037eb8e171064a850b53aab numpy-1.17.3.tar.gz
a3195ccbbd97b0366f0c46e36a62717a numpy-1.17.3.zip

SHA256
------

4dd830a11e8724c9c9379feed1d1be43113f8bcce55f47ea7186d3946769ce26 numpy-1.17.3-cp35-cp35m-macosx_10_6_intel.whl
30c84e3a62cfcb9e3066f25226e131451312a044f1fe2040e69ce792cb7de418 numpy-1.17.3-cp35-cp35m-manylinux1_i686.whl
9395b0a41e8b7e9a284e3be7060db9d14ad80273841c952c83a5afc241d2bd98 numpy-1.17.3-cp35-cp35m-manylinux1_x86_64.whl
9e37c35fc4e9410093b04a77d11a34c64bf658565e30df7cbe882056088a91c1 numpy-1.17.3-cp35-cp35m-win32.whl
de2b1c20494bdf47f0160bd88ed05f5e48ae5dc336b8de7cfade71abcc95c0b9 numpy-1.17.3-cp35-cp35m-win_amd64.whl
669795516d62f38845c7033679c648903200980d68935baaa17ac5c7ae03ae0c numpy-1.17.3-cp36-cp36m-macosx_10_9_x86_64.whl
4650d94bb9c947151737ee022b934b7d9a845a7c76e476f3e460f09a0c8c6f39 numpy-1.17.3-cp36-cp36m-manylinux1_i686.whl
4f2a2b279efde194877aff1f76cf61c68e840db242a5c7169f1ff0fd59a2b1e2 numpy-1.17.3-cp36-cp36m-manylinux1_x86_64.whl
ffca69e29079f7880c5392bf675eb8b4146479d976ae1924d01cd92b04cccbcc numpy-1.17.3-cp36-cp36m-win32.whl
2e418f0a59473dac424f888dd57e85f77502a593b207809211c76e5396ae4f5c numpy-1.17.3-cp36-cp36m-win_amd64.whl
75fcd60d682db3e1f8fbe2b8b0c6761937ad56d01c1dc73edf4ef2748d5b6bc4 numpy-1.17.3-cp37-cp37m-macosx_10_9_x86_64.whl
28b1180c758abf34a5c3fea76fcee66a87def1656724c42bb14a6f9717a5bdf7 numpy-1.17.3-cp37-cp37m-manylinux1_i686.whl
dd0667f5be56fb1b570154c2c0516a528e02d50da121bbbb2cbb0b6f87f59bc2 numpy-1.17.3-cp37-cp37m-manylinux1_x86_64.whl
25ffe71f96878e1da7e014467e19e7db90ae7d4e12affbc73101bcf61785214e numpy-1.17.3-cp37-cp37m-win32.whl
0b0dd8f47fb177d00fa6ef2d58783c4f41ad3126b139c91dd2f7c4b3fdf5e9a5 numpy-1.17.3-cp37-cp37m-win_amd64.whl
62d22566b3e3428dfc9ec972014c38ed9a4db4f8969c78f5414012ccd80a149e numpy-1.17.3-cp38-cp38-macosx_10_9_x86_64.whl
26efd7f7d755e6ca966a5c0ac5a930a87dbbaab1c51716ac26a38f42ecc9bc4b numpy-1.17.3-cp38-cp38-manylinux1_i686.whl
b46554ad4dafb2927f88de5a1d207398c5385edbb5c84d30b3ef187c4a3894d8 numpy-1.17.3-cp38-cp38-manylinux1_x86_64.whl
c867eeccd934920a800f65c6068acdd6b87e80d45cd8c8beefff783b23cdc462 numpy-1.17.3-cp38-cp38-win32.whl
f1df7b2b7740dd777571c732f98adb5aad5450aee32772f1b39249c8a50386f6 numpy-1.17.3-cp38-cp38-win_amd64.whl
c93733dbebc2599d2747ceac4b18825a73767d289176ed8e02090325656d69aa numpy-1.17.3.tar.gz
a0678793096205a4d784bd99f32803ba8100f639cf3b932dc63b21621390ea7e numpy-1.17.3.zip

1.17.2

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

This release contains fixes for bugs reported against NumPy 1.17.1 along with a
some documentation improvements. The most important fix is for lexsort when the
keys are of type (u)int8 or (u)int16. If you are currently using 1.17 you
should upgrade.

The Python versions supported in this release are 3.5-3.7, Python 2.7 has been
dropped. Python 3.8b4 should work with the released source packages, but there
are no future guarantees.

Downstream developers should use Cython >= 0.29.13 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid errors on the Skylake architecture. The NumPy wheels
on PyPI are built from the OpenBLAS development branch in order to avoid those
errors.


Contributors
============

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

* CakeWithSteak +
* Charles Harris
* Dan Allan
* Hameer Abbasi
* Lars Grueter
* Matti Picus
* Sebastian Berg


Pull requests merged
====================

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

* 14418: BUG: Fix aradixsort indirect indexing.
* 14420: DOC: Fix a minor typo in dispatch documentation.
* 14421: BUG: test, fix regression in converting to ctypes
* 14430: BUG: Do not show Override module in private error classes.
* 14432: BUG: Fixed maximum relative error reporting in assert_allclose.
* 14433: BUG: Fix uint-overflow if padding with linear_ramp and negative...
* 14436: BUG: Update 1.17.x with 1.18.0-dev pocketfft.py.
* 14446: REL: Prepare for NumPy 1.17.2 release.

Checksums
=========

MD5
---

900786591ffe811ff9ff8b3fcf9e3ff9 numpy-1.17.2-cp35-cp35m-macosx_10_6_intel.whl
307df8c629637865205276f0e48cbe53 numpy-1.17.2-cp35-cp35m-manylinux1_i686.whl
279b286a569bacba85dfe44d86ed9767 numpy-1.17.2-cp35-cp35m-manylinux1_x86_64.whl
0bc93e932b32408cceb5579f074e30a9 numpy-1.17.2-cp35-cp35m-win32.whl
b963be3cae47b66b2c8b433d34cb93d1 numpy-1.17.2-cp35-cp35m-win_amd64.whl
3eed381285a43bd23d7c568c6c165ec9 numpy-1.17.2-cp36-cp36m-macosx_10_6_intel.whl
0a6d7616b5ed35d65a58c6a61256afb0 numpy-1.17.2-cp36-cp36m-manylinux1_i686.whl
5b5a2f0bc6f01c1ae2c831fbfd8c8b06 numpy-1.17.2-cp36-cp36m-manylinux1_x86_64.whl
8f166ccebf19a8c9c6ac00c8d93ba566 numpy-1.17.2-cp36-cp36m-win32.whl
406fc90887f6af60f2edf229b2cfb2cf numpy-1.17.2-cp36-cp36m-win_amd64.whl
a82da3fd77787c73cae9057f63e3b666 numpy-1.17.2-cp37-cp37m-macosx_10_6_intel.whl
1f9b449eca275014f133872cdddf166d numpy-1.17.2-cp37-cp37m-manylinux1_i686.whl
1de9df1e07a1f2becc7925b0861d1b2d numpy-1.17.2-cp37-cp37m-manylinux1_x86_64.whl
0ae4a060c7353723c340aaf0fc655220 numpy-1.17.2-cp37-cp37m-win32.whl
a7a026ef5c54dbc295e134d04367514e numpy-1.17.2-cp37-cp37m-win_amd64.whl
68d582e09b951717b7ae1e9c0011d779 numpy-1.17.2.tar.gz
a0fffd7651e6ed4c60d94394ca6662cd numpy-1.17.2.zip

SHA256
------

3d0b0989dd2d066db006158de7220802899a1e5c8cf622abe2d0bd158fd01c2c numpy-1.17.2-cp35-cp35m-macosx_10_6_intel.whl
7bd355ad7496f4ce1d235e9814ec81ee3d28308d591c067ce92e49f745ba2c2f numpy-1.17.2-cp35-cp35m-manylinux1_i686.whl
7d077f2976b8f3de08a0dcf5d72083f4af5411e8fddacd662aae27baa2601196 numpy-1.17.2-cp35-cp35m-manylinux1_x86_64.whl
05dbfe72684cc14b92568de1bc1f41e5f62b00f714afc9adee42f6311738091f numpy-1.17.2-cp35-cp35m-win32.whl
f4a4f6aba148858a5a5d546a99280f71f5ee6ec8182a7d195af1a914195b21a2 numpy-1.17.2-cp35-cp35m-win_amd64.whl
ee8e9d7cad5fe6dde50ede0d2e978d81eafeaa6233fb0b8719f60214cf226578 numpy-1.17.2-cp36-cp36m-macosx_10_6_intel.whl
438a3f0e7b681642898fd7993d38e2bf140a2d1eafaf3e89bb626db7f50db355 numpy-1.17.2-cp36-cp36m-manylinux1_i686.whl
b458de8624c9f6034af492372eb2fee41a8e605f03f4732f43fc099e227858b2 numpy-1.17.2-cp36-cp36m-manylinux1_x86_64.whl
0d82cb7271a577529d07bbb05cb58675f2deb09772175fab96dc8de025d8ac05 numpy-1.17.2-cp36-cp36m-win32.whl
12322df2e21f033a60c80319c25011194cd2a21294cc66fee0908aeae2c27832 numpy-1.17.2-cp36-cp36m-win_amd64.whl
e70fc8ff03a961f13363c2c95ef8285e0cf6a720f8271836f852cc0fa64e97c8 numpy-1.17.2-cp37-cp37m-macosx_10_6_intel.whl
a4092682778dc48093e8bda8d26ee8360153e2047826f95a3f5eae09f0ae3abf numpy-1.17.2-cp37-cp37m-manylinux1_i686.whl
10132aa1fef99adc85a905d82e8497a580f83739837d7cbd234649f2e9b9dc58 numpy-1.17.2-cp37-cp37m-manylinux1_x86_64.whl
16f19b3aa775dddc9814e02a46b8e6ae6a54ed8cf143962b4e53f0471dbd7b16 numpy-1.17.2-cp37-cp37m-win32.whl
5fd214f482ab53f2cea57414c5fb3e58895b17df6e6f5bca5be6a0bb6aea23bb numpy-1.17.2-cp37-cp37m-win_amd64.whl
81a4f748dcfa80a7071ad8f3d9f8edb9f8bc1f0a9bdd19bfd44fd42c02bd286c numpy-1.17.2.tar.gz
73615d3edc84dd7c4aeb212fa3748fb83217e00d201875a47327f55363cef2df numpy-1.17.2.zip

1.17.1

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

This release contains a number of fixes for bugs reported against NumPy 1.17.0
along with a few documentation and build improvements. The Python versions
supported are 3.5-3.7, note that Python 2.7 has been dropped. Python 3.8b3
should work with the released source packages, but there are no future
guarantees.

Downstream developers should use Cython >= 0.29.13 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid problems on the Skylake architecture. The NumPy wheels
on PyPI are built from the OpenBLAS development branch in order to avoid those
problems.


Contributors
============

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

* Alexander Jung +
* Allan Haldane
* Charles Harris
* Eric Wieser
* Giuseppe Cuccu +
* Hiroyuki V. Yamazaki
* Jérémie du Boisberranger
* Kmol Yuan +
* Matti Picus
* Max Bolingbroke +
* Maxwell Aladago +
* Oleksandr Pavlyk
* Peter Andreas Entschev
* Sergei Lebedev
* Seth Troisi +
* Vladimir Pershin +
* Warren Weckesser


Pull requests merged
====================

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

* 14156: TST: Allow fuss in testing strided/non-strided exp/log loops
* 14157: BUG: avx2_scalef_ps must be static
* 14158: BUG: Remove stray print that causes a SystemError on python 3.7.
* 14159: BUG: Fix DeprecationWarning in python 3.8.
* 14160: BLD: Add missing gcd/lcm definitions to npy_math.h
* 14161: DOC, BUILD: cleanups and fix (again) 'build dist'
* 14166: TST: Add 3.8-dev to travisCI testing.
* 14194: BUG: Remove the broken clip wrapper (Backport)
* 14198: DOC: Fix hermitian argument docs in svd.
* 14199: MAINT: Workaround for Intel compiler bug leading to failing test
* 14200: TST: Clean up of test_pocketfft.py
* 14201: BUG: Make advanced indexing result on read-only subclass writeable...
* 14236: BUG: Fixed default BitGenerator name
* 14237: ENH: add c-imported modules for freeze analysis in np.random
* 14296: TST: Pin pytest version to 5.0.1
* 14301: BUG: Fix leak in the f2py-generated module init and `PyMem_Del`...
* 14302: BUG: Fix formatting error in exception message
* 14307: MAINT: random: Match type of SeedSequence.pool_size to DEFAULT_POOL_SIZE.
* 14308: BUG: Fix numpy.random bug in platform detection
* 14309: ENH: Enable huge pages in all Linux builds
* 14330: BUG: Fix segfault in `random.permutation(x)` when x is a string.
* 14338: BUG: don't fail when lexsorting some empty arrays (14228)
* 14339: BUG: Fix misuse of .names and .fields in various places (backport...
* 14345: BUG: fix behavior of structured_to_unstructured on non-trivial...
* 14350: REL: Prepare 1.17.1 release

Checksums
=========

MD5
---

99708c771ef1efe283ecfd6e30698e1a numpy-1.17.1-cp35-cp35m-macosx_10_9_x86_64.whl
5547039914b3f9541137e8cd9fab57c7 numpy-1.17.1-cp35-cp35m-manylinux1_i686.whl
b24c5726f07d5f71d244baaa513af920 numpy-1.17.1-cp35-cp35m-manylinux1_x86_64.whl
55070ccaeabbe5036c5a577f4e4cc2b0 numpy-1.17.1-cp35-cp35m-win32.whl
086a59eab8e5b8ebbf10755b8a2db677 numpy-1.17.1-cp35-cp35m-win_amd64.whl
a7d523ddbe70107016026da5474b7245 numpy-1.17.1-cp36-cp36m-macosx_10_9_x86_64.whl
794d982a831762918eba7fa5cf8f16e8 numpy-1.17.1-cp36-cp36m-manylinux1_i686.whl
c50ee655b018c315e75a8cb40c771225 numpy-1.17.1-cp36-cp36m-manylinux1_x86_64.whl
e1b9c4c90df2b84674dbd6c3875d44b1 numpy-1.17.1-cp36-cp36m-win32.whl
0799ddcbb5d28d789d613558bce33b30 numpy-1.17.1-cp36-cp36m-win_amd64.whl
7e723a8f451eaa091f09a4df09bdf776 numpy-1.17.1-cp37-cp37m-macosx_10_9_x86_64.whl
c4c09c737c19d86829e4f2268d2c8991 numpy-1.17.1-cp37-cp37m-manylinux1_i686.whl
c711188365a7677334ddc754778d4822 numpy-1.17.1-cp37-cp37m-manylinux1_x86_64.whl
dddef61754e2ddb46cce6a1656d35eb4 numpy-1.17.1-cp37-cp37m-win32.whl
5e022462aedaac5e9d7f5b09a8f7e3bb numpy-1.17.1-cp37-cp37m-win_amd64.whl
b2260d650bc28c846e18b7c29a089953 numpy-1.17.1.tar.gz
cad292965675fbe8d5fbae3009ab8b58 numpy-1.17.1.zip

SHA256
------

078c8025da5ab9e8657edc9c2a1e9642e06e953bc7baa2e65c1aa9d9dfb7e98b numpy-1.17.1-cp35-cp35m-macosx_10_9_x86_64.whl
a3f6b3024f8826d8b1490e6e2a9b99e841cd2c375791b1df62991bd8f4c00b89 numpy-1.17.1-cp35-cp35m-manylinux1_i686.whl
bede70fd8699695363f39e86c1e869b2c8b74fb5ef135a67b9e1eeebff50322a numpy-1.17.1-cp35-cp35m-manylinux1_x86_64.whl
1c841033f4fe6801648180c3033c45b3235a8bbd09bc7249010f99ea27bb6790 numpy-1.17.1-cp35-cp35m-win32.whl
03f2ebcbffcce2dec8860633b89a93e80c6a239d21a77ae8b241450dc21e8c35 numpy-1.17.1-cp35-cp35m-win_amd64.whl
c304b2221f33489cd15a915237a84cdfe9420d7e4d4828c78a0820f9d990395c numpy-1.17.1-cp36-cp36m-macosx_10_9_x86_64.whl
0fbfa98c5d5c3c6489cc1e852ec94395d51f35d9ebe70c6850e47f465038cdf4 numpy-1.17.1-cp36-cp36m-manylinux1_i686.whl
fb6178b0488b0ce6a54bc4accbdf5225e937383586555604155d64773f6beb2b numpy-1.17.1-cp36-cp36m-manylinux1_x86_64.whl
2c0984a01ddd0aeec89f0ce46ef21d64761048cd76c0074d0658c91f9131f154 numpy-1.17.1-cp36-cp36m-win32.whl
8c2d98d0623bd63fb883b65256c00454d5f53127a5a7bcdaa8bdc582814e8cb4 numpy-1.17.1-cp36-cp36m-win_amd64.whl
8cb4b6ae45aad6d26712a1ce0a3f2556c5e1484867f9649e03496e45d6a5eba4 numpy-1.17.1-cp37-cp37m-macosx_10_9_x86_64.whl
4c166dcb0fff7cb3c0bbc682dfb5061852a2547efb6222e043a7932828c08fb5 numpy-1.17.1-cp37-cp37m-manylinux1_i686.whl
93050e73c446c82065b7410221b07682e475ac51887cd9368227a5d944afae80 numpy-1.17.1-cp37-cp37m-manylinux1_x86_64.whl
fa5f2a8ef1e07ba258dc07d4dd246de23ef4ab920ae0f3fa2a1cc5e90f0f1888 numpy-1.17.1-cp37-cp37m-win32.whl
fd5e830d4dc31658d61a6452cd3e842213594d8c15578cdae6829e36ad9c0930 numpy-1.17.1-cp37-cp37m-win_amd64.whl
24d479ebc92f2d1c739622568f0e4d1382c6bf9778505146a370c8e2f5749839 numpy-1.17.1.tar.gz
f11331530f0eff69a758d62c2461cd98cdc2eae0147279d8fc86e0464eb7e8ca numpy-1.17.1.zip

1.17.0

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

This NumPy release contains a number of new features that should substantially
improve its performance and usefulness, see Highlights below for a summary. The
Python versions supported are 3.5-3.7, note that Python 2.7 has been dropped.
Python 3.8b1 should work with the released source packages, but there are no
future guarantees.

Downstream developers should use Cython >= 0.29.10 for Python 3.8 support and
OpenBLAS >= 3.7 (not currently out) to avoid problems on the Skylake
architecture. The NumPy wheels on PyPI are built from the OpenBLAS development
branch in order to avoid those problems.


Highlights
==========

* A new extensible random module along with four selectable random number
generators and improved seeding designed for use in parallel processes has
been added. The currently available bit generators are MT19937, PCG64,
Philox, and SFC64. See below under New Features.

* NumPy's FFT implementation was changed from fftpack to pocketfft, resulting
in faster, more accurate transforms and better handling of datasets of
prime length. See below under Improvements.

* New radix sort and timsort sorting methods. It is currently not possible to
choose which will be used, but they are hardwired to the datatype and used
when either ``stable`` or ``mergesort`` is passed as the method. See below
under Improvements.

* Overriding numpy functions is now possible by default,
see ``__array_function__`` below.


New functions
=============

* `numpy.errstate` is now also a function decorator


Deprecations
============

``np.polynomial`` functions warn when passed ``float`` in place of ``int``
--------------------------------------------------------------------------
Previously functions in this module would accept ``float`` values provided they
were integral (``1.0``, ``2.0``, etc). For consistency with the rest of numpy,
doing so is now deprecated, and in future will raise a ``TypeError``.

Similarly, passing a float like ``0.5`` in place of an integer will now raise a
``TypeError`` instead of the previous ``ValueError``.

Deprecate ``numpy.distutils.exec_command`` and ``numpy.distutils.temp_file_name``
---------------------------------------------------------------------------------
The internal use of these functions has been refactored and there are better
alternatives. Relace ``exec_command`` with `subprocess.Popen` and
``temp_file_name`` with `tempfile.mkstemp`.

Writeable flag of C-API wrapped arrays
--------------------------------------
When an array is created from the C-API to wrap a pointer to data, the only
indication we have of the read-write nature of the data is the ``writeable``
flag set during creation. It is dangerous to force the flag to writeable.
In the future it will not be possible to switch the writeable flag to ``True``
from python. This deprecation should not affect many users since arrays created in such
a manner are very rare in practice and only available through the NumPy C-API.

`numpy.nonzero` should no longer be called on 0d arrays
-------------------------------------------------------
The behavior of nonzero on 0d arrays was surprising, making uses of it almost
always incorrect. If the old behavior was intended, it can be preserved without
a warning by using ``nonzero(atleast_1d(arr))`` instead of ``nonzero(arr)``.
In a future release, it is most likely this will raise a `ValueError`.

Writing to the result of `numpy.broadcast_arrays` will warn
-----------------------------------------------------------
Commonly `numpy.broadcast_arrays` returns a writeable array with internal
overlap, making it unsafe to write to. A future version will set the
``writeable`` flag to ``False``, and require users to manually set it to
``True`` if they are sure that is what they want to do. Now writing to it will
emit a deprecation warning with instructions to set the ``writeable`` flag
``True``. Note that if one were to inspect the flag before setting it, one
would find it would already be ``True``. Explicitly setting it, though, as one
will need to do in future versions, clears an internal flag that is used to
produce the deprecation warning. To help alleviate confusion, an additional
`FutureWarning` will be emitted when accessing the ``writeable`` flag state to
clarify the contradiction.


Future Changes
==============

Shape-1 fields in dtypes won't be collapsed to scalars in a future version
--------------------------------------------------------------------------

Currently, a field specified as ``[(name, dtype, 1)]`` or ``"1type"`` is
interpreted as a scalar field (i.e., the same as ``[(name, dtype)]`` or
``[(name, dtype, ()]``). This now raises a FutureWarning; in a future version,
it will be interpreted as a shape-(1,) field, i.e. the same as
``[(name,dtype, (1,))]`` or ``"(1,)type"`` (consistent with
``[(name, dtype, n)] / "ntype"`` for ``n > 1``, which is already equivalent to
``[(name, dtype,(n,)] / "(n,)type"``).


Compatibility notes
===================

float16 subnormal rounding
--------------------------
Casting from a different floating point precision to float16 used incorrect
rounding in some edge cases. This means in rare cases, subnormal results will
now be rounded up instead of down, changing the last bit (ULP) of the result.

Signed zero when using divmod
-----------------------------
Starting in version 1.12.0, numpy incorrectly returned a negatively signed zero
when using the ``divmod`` and ``floor_divide`` functions when the result was
zero. For example:

>>> np.zeros(10)//1
array([-0., -0., -0., -0., -0., -0., -0., -0., -0., -0.])

With this release, the result is correctly returned as a positively signed
zero:

>>> np.zeros(10)//1
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])


``MaskedArray.mask`` now returns a view of the mask, not the mask itself
------------------------------------------------------------------------
Returning the mask itself was unsafe, as it could be reshaped in place which
would violate expectations of the masked array code. It's behavior is now
consistent with the ``.data`` attribute, which also returns a view.

The underlying mask can still be accessed with ``._mask`` if it is needed.
Tests that contain ``assert x.mask is not y.mask`` or similar will need to be
updated.

Do not lookup ``__buffer__`` attribute in `numpy.frombuffer`
------------------------------------------------------------
Looking up ``__buffer__`` attribute in `numpy.frombuffer` was undocumented and
non-functional. This code was removed. If needed, use
``frombuffer(memoryview(obj), ...)`` instead.

``out``is buffered for memory overlaps in ``np.take``, ``np.choose``, ``np.put``
--------------------------------------------------------------------------------
If the out argument to these functions is provided and has memory overlap with
the other arguments, it is now buffered to avoid order-dependent behavior.

Unpickling while loading requires explicit opt-in
-------------------------------------------------
The functions ``np.load``, and ``np.lib.format.read_array`` take an
``allow_pickle`` keyword which now defaults to ``False`` in response to
`CVE-2019-6446 <https://nvd.nist.gov/vuln/detail/CVE-2019-6446>`_.

Potential changes to the random stream in old random module
-----------------------------------------------------------
Due to bugs in the application of log to random floating point numbers,
the stream may change when sampling from ``np.random.beta``, ``np.random.binomial``,
``np.random.laplace``, ``np.random.logistic``, ``np.random.logseries`` or
``np.random.multinomial`` if a 0 is generated in the underlying MT19937 random stream.
There is a 1 in :math:`10^{53}` chance of this occurring, and so the probability that
the stream changes for any given seed is extremely small. If a 0 is encountered in the
underlying generator, then the incorrect value produced (either ``np.inf``
or ``np.nan``) is now dropped.

``i0`` now always returns a result with the same shape as the input
-------------------------------------------------------------------
Previously, the output was squeezed, such that, e.g., input with just a single
element would lead to an array scalar being returned, and inputs with shapes
such as ``(10, 1)`` would yield results that would not broadcast against the
input.

Note that we generally recommend the SciPy implementation over the numpy one:
it is a proper ufunc written in C, and more than an order of magnitude faster.

``np.can_cast`` no longer assumes all unsafe casting is allowed
---------------------------------------------------------------
Previously, ``can_cast`` returned `True` for almost all inputs for
``casting='unsafe'``, even for cases where casting was not possible, such as
from a structured dtype to a regular one. This has been fixed, making it
more consistent with actual casting using, e.g., the ``.astype`` method.

``arr.writeable`` can be switched to true slightly more often
-------------------------------------------------------------

In rare cases, it was not possible to switch an array from not writeable
to writeable, although a base array is writeable. This can happen if an
intermediate ``arr.base`` object is writeable. Previously, only the deepest
base object was considered for this decision. However, in rare cases this
object does not have the necessary information. In that case switching to
writeable was never allowed. This has now been fixed.


C API changes
=============

dimension or stride input arguments are now passed by ``npy_intp const*``
-------------------------------------------------------------------------
Previously these function arguments were declared as the more strict
``npy_intp*``, which prevented the caller passing constant data.
This change is backwards compatible, but now allows code like::

npy_intp const fixed_dims[] = {1, 2, 3};
// no longer complains that the const-qualifier is discarded
npy_intp size = PyArray_MultiplyList(fixed_dims, 3);



New Features
============

New extensible random module with selectable random number generators
---------------------------------------------------------------------
A new extensible random module along with four selectable random number
generators and improved seeding designed for use in parallel processes has been
added. The currently available bit generators are MT19937, PCG64, Philox, and
SFC64. PCG64 is the new default while MT19937 is retained for backwards
compatibility. Note that the legacy random module is unchanged and is now
frozen, your current results will not change. Extensive documentation for the
new module is available online at
[NumPy devdocs](http://www.numpy.org/devdocs/reference/random/index.html).

libFLAME
--------
Support for building NumPy with the libFLAME linear algebra package as the LAPACK,
implementation, see
[libFLAME](https://www.cs.utexas.edu/~flame/web/libFLAME.html) for details.

User-defined BLAS detection order
---------------------------------
``numpy.distutils`` now uses an environment variable, comma-separated and case
insensitive, to determine the detection order for BLAS libraries.
By default ``NPY_BLAS_ORDER=mkl,blis,openblas,atlas,accelerate,blas``.
However, to force the use of OpenBLAS simply do::

NPY_BLAS_ORDER=openblas python setup.py build

which forces the use of OpenBLAS.
This may be helpful for users which have a MKL installation but wishes to try
out different implementations.

User-defined LAPACK detection order
-----------------------------------
``numpy.distutils`` now uses an environment variable, comma-separated and case
insensitive, to determine the detection order for LAPACK libraries.
By default ``NPY_BLAS_ORDER=mkl,openblas,flame,atlas,accelerate,lapack``.
However, to force the use of OpenBLAS simply do::

NPY_LAPACK_ORDER=openblas python setup.py build

which forces the use of OpenBLAS.
This may be helpful for users which have a MKL installation but wishes to try
out different implementations.

``np.ufunc.reduce`` and related functions now accept a ``where`` mask
---------------------------------------------------------------------
``np.ufunc.reduce``, ``np.sum``, ``np.prod``, ``np.min``, ``np.max`` all
now accept a ``where`` keyword argument, which can be used to tell which
elements to include in the reduction. For reductions that do not have an
identity, it is necessary to also pass in an initial value (e.g.,
``initial=np.inf`` for ``np.min``). For instance, the equivalent of
``nansum`` would be, ``np.sum(a, where=~np.isnan(a))``.

Timsort and radix sort have replaced mergesort for stable sorting
-----------------------------------------------------------------
Both radix sort and timsort have been implemented and are now used in place of
mergesort. Due to the need to maintain backward compatibility, the sorting
``kind`` options ``"stable"`` and ``"mergesort"`` have been made aliases of
each other with the actual sort implementation depending on the array type.
Radix sort is used for small integer types of 16 bits or less and timsort for
the remaining types. Timsort features improved performace on data containing
already or nearly sorted data and performs like mergesort on random data and
requires O(n/2) working space. Details of the timsort algorithm can be found
at [CPython listsort.txt](https://github.com/python/cpython/blob/3.7/Objects/listsort.txt).

``np.unpackbits`` now accepts a ``count`` parameter
---------------------------------------------------
``count`` allows subsetting the number of bits that will be unpacked up-front,
rather than reshaping and subsetting later, making the ``packbits`` operation
invertible, and the unpacking less wasteful. Counts larger than the number of
available bits add zero padding. Negative counts trim bits off the end instead
of counting from the beginning. None counts implement the existing behavior of
unpacking everything.

``np.linalg.svd`` and ``np.linalg.pinv`` can be faster on hermitian inputs
--------------------------------------------------------------------------
These functions now accept a ``hermitian`` argument, matching the one added
to ``np.linalg.matrix_rank`` in 1.14.0.

divmod operation is now supported for two ``timedelta64`` operands
------------------------------------------------------------------
The divmod operator now handles two ``np.timedelta64`` operands, with
type signature mm->qm.

``np.fromfile`` now takes an ``offset`` argument
------------------------------------------------
This function now takes an ``offset`` keyword argument for binary files,
which specifics the offset (in bytes) from the file's current position.
Defaults to 0.

New mode "empty" for ``np.pad``
-------------------------------
This mode pads an array to a desired shape without initializing the new
entries.

``np.empty_like`` and related functions now accept a ``shape`` argument
-----------------------------------------------------------------------
``np.empty_like``, ``np.full_like``, ``np.ones_like`` and ``np.zeros_like`` now
accept a ``shape`` keyword argument, which can be used to create a new array
as the prototype, overriding its shape as well. This is particularly useful
when combined with the ``__array_function__`` protocol, allowing the creation
of new arbitrary-shape arrays from NumPy-like libraries when such an array
is used as the prototype.

Floating point scalars implement ``as_integer_ratio`` to match the builtin float
--------------------------------------------------------------------------------
This returns a (numerator, denominator) pair, which can be used to construct a
`fractions.Fraction`.

Structured ``dtype`` objects can be indexed with multiple fields names
----------------------------------------------------------------------
``arr.dtype[['a', 'b']]`` now returns a dtype that is equivalent to
``arr[['a', 'b']].dtype``, for consistency with
``arr.dtype['a'] == arr['a'].dtype``.

Like the dtype of structured arrays indexed with a list of fields, this dtype
has the same ``itemsize`` as the original, but only keeps a subset of the fields.

This means that ``arr[['a', 'b']]`` and ``arr.view(arr.dtype[['a', 'b']])`` are
equivalent.

``.npy`` files support unicode field names
------------------------------------------
A new format version of 3.0 has been introduced, which enables structured types
with non-latin1 field names. This is used automatically when needed.

`numpy.packbits` and `numpy.unpackbits` accept an ``order`` keyword
-------------------------------------------------------------------
The ``order`` keyword defaults to ``big``, and will order the **bits**
accordingly. For ``'big'`` 3 will become ``[0, 0, 0, 0, 0, 0, 1, 1]``, and
``[1, 1, 0, 0, 0, 0, 0, 0]`` for ``little``


Improvements
============

Array comparison assertions include maximum differences
-------------------------------------------------------
Error messages from array comparison tests such as
`np.testing.assert_allclose` now include "max absolute difference" and
"max relative difference," in addition to the previous "mismatch" percentage.
This information makes it easier to update absolute and relative error
tolerances.

Replacement of the fftpack based FFT module by the pocketfft library
--------------------------------------------------------------------
Both implementations have the same ancestor (Fortran77 FFTPACK by Paul N.
Swarztrauber), but pocketfft contains additional modifications which improve
both accuracy and performance in some circumstances. For FFT lengths containing
large prime factors, pocketfft uses Bluestein's algorithm, which maintains
``O(N log N)`` run time complexity instead of deteriorating towards ``O(N*N)``
for prime lengths. Also, accuracy for real valued FFTs with near prime lengths
has improved and is on par with complex valued FFTs.

Further improvements to ``ctypes`` support in `numpy.ctypeslib`
---------------------------------------------------------------
A new `numpy.ctypeslib.as_ctypes_type` function has been added, which can be
used to converts a ``dtype`` into a best-guess ``ctypes`` type. Thanks to this
new function, `numpy.ctypeslib.as_ctypes` now supports a much wider range of
array types, including structures, booleans, and integers of non-native
endianness.

`numpy.errstate` is now also a function decorator
-------------------------------------------------
Currently, if you have a function like::

def foo():
pass

and you want to wrap the whole thing in ``errstate``, you have to rewrite it
like so::

def foo():
with np.errstate(...):
pass

but with this change, you can do::

np.errstate(...)
def foo():
pass

thereby saving a level of indentation

`numpy.exp` and `numpy.log` speed up for float32 implementation
---------------------------------------------------------------
float32 implementation of numpy.exp and numpy.log now benefit from AVX2/AVX512
instruction set which are detected during runtime. numpy.exp has a max ulp
error of 2.52 and numpy.log has a max ulp error or 3.83.

Improve performance of `numpy.pad`
----------------------------------
The performance of the function has been improved for most cases by filling in
a preallocated array with the desired padded shape instead of using
concatenation.

`numpy.interp` handles infinities more robustly
-----------------------------------------------
In some cases where ``np.interp`` would previously return ``np.nan``, it now
returns an appropriate infinity.

Pathlib support for ``np.fromfile``, ``ndarray.tofile`` and ``ndarray.dump``
----------------------------------------------------------------------------
``np.fromfile``, ``np.ndarray.tofile`` and ``np.ndarray.dump`` now support
the `pathlib.Path` type for the ``file``/``fid`` parameter.

Specialized ``np.isnan``, ``np.isinf``, and ``np.isfinite`` ufuncs for bool and int types
-----------------------------------------------------------------------------------------
The boolean and integer types are incapable of storing ``np.nan`` and
``np.inf`` values, which allows us to provide specialized ufuncs that are up to
250x faster than the current approach.

``np.isfinite`` supports ``datetime64`` and ``timedelta64`` types
-----------------------------------------------------------------
Previously, `np.isfinite` used to raise a ``TypeError`` on being used on these
two types.

New keywords added to ``np.nan_to_num``
---------------------------------------
``np.nan_to_num`` now accepts keywords ``nan``, ``posinf`` and ``neginf``
allowing the user to define the value to replace the ``nan``, positive and
negative ``np.inf`` values respectively.

MemoryErrors caused by allocated overly large arrays are more descriptive
-------------------------------------------------------------------------
Often the cause of a MemoryError is incorrect broadcasting, which results in a
very large and incorrect shape. The message of the error now includes this
shape to help diagnose the cause of failure.

`floor`, `ceil`, and `trunc` now respect builtin magic methods
--------------------------------------------------------------
These ufuncs now call the ``__floor__``, ``__ceil__``, and ``__trunc__``
methods when called on object arrays, making them compatible with
`decimal.Decimal` and `fractions.Fraction` objects.

``quantile`` now works on ``fraction.Fraction`` and ``decimal.Decimal`` objects
-------------------------------------------------------------------------------
In general, this handles object arrays more gracefully, and avoids floating-
point operations if exact arithmetic types are used.

Support of object arrays in ``np.matmul``
-----------------------------------------
It is now possible to use ``np.matmul`` (or the ` operator) with object arrays.
For instance, it is now possible to do::

from fractions import Fraction
a = np.array([[Fraction(1, 2), Fraction(1, 3)], [Fraction(1, 3), Fraction(1, 2)]])
b = a a


Changes
=======

``median`` and ``percentile`` family of functions no longer warn about ``nan``
------------------------------------------------------------------------------
`numpy.median`, `numpy.percentile`, and `numpy.quantile` used to emit a
``RuntimeWarning`` when encountering an `numpy.nan`. Since they return the
``nan`` value, the warning is redundant and has been removed.

``timedelta64 % 0`` behavior adjusted to return ``NaT``
-------------------------------------------------------
The modulus operation with two ``np.timedelta64`` operands now returns
``NaT`` in the case of division by zero, rather than returning zero

NumPy functions now always support overrides with ``__array_function__``
------------------------------------------------------------------------
NumPy now always checks the ``__array_function__`` method to implement overrides
of NumPy functions on non-NumPy arrays, as described in `NEP 18`_. The feature
was available for testing with NumPy 1.16 if appropriate environment variables
are set, but is now always enabled.

.. _`NEP 18` : http://www.numpy.org/neps/nep-0018-array-function-protocol.html

`numpy.lib.recfunctions.structured_to_unstructured` does not squeeze single-field views
---------------------------------------------------------------------------------------
Previously ``structured_to_unstructured(arr[['a']])`` would produce a squeezed
result inconsistent with ``structured_to_unstructured(arr[['a', b']])``. This
was accidental. The old behavior can be retained with
``structured_to_unstructured(arr[['a']]).squeeze(axis=-1)`` or far more simply,
``arr['a']``.

``clip`` now uses a ufunc under the hood
----------------------------------------
This means that registering clip functions for custom dtypes in C via
``descr->f->fastclip`` is deprecated - they should use the ufunc registration
mechanism instead, attaching to the ``np.core.umath.clip`` ufunc.

It also means that ``clip`` accepts ``where`` and ``casting`` arguments,
and can be override with ``__array_ufunc__``.

A consequence of this change is that some behaviors of the old ``clip`` have
been deprecated:

* Passing ``nan`` to mean "do not clip" as one or both bounds. This didn't work
in all cases anyway, and can be better handled by passing infinities of the
appropriate sign.
* Using "unsafe" casting by default when an ``out`` argument is passed. Using
``casting="unsafe"`` explicitly will silence this warning.

Additionally, there are some corner cases with behavior changes:

* Padding ``max < min`` has changed to be more consistent across dtypes, but
should not be relied upon.
* Scalar ``min`` and ``max`` take part in promotion rules like they do in all
other ufuncs.

``__array_interface__`` offset now works as documented
------------------------------------------------------
The interface may use an ``offset`` value that was mistakenly ignored.

Pickle protocol in ``np.savez`` set to 3 for ``force zip64`` flag
-----------------------------------------------------------------
``np.savez`` was not using the ``force_zip64`` flag, which limited the size of
the archive to 2GB. But using the flag requires us to use pickle protocol 3 to
write ``object`` arrays. The protocol used was bumped to 3, meaning the archive
will be unreadable by Python2.

Structured arrays indexed with non-existent fields raise ``KeyError`` not ``ValueError``
----------------------------------------------------------------------------------------
``arr['bad_field']`` on a structured type raises ``KeyError``, for consistency
with ``dict['bad_field']``.

.. _`NEP 18` : http://www.numpy.org/neps/nep-0018-array-function-protocol.html

Checksums
=========

MD5
---

d97e622de3c0b719231a1e1bcab1ed55 numpy-1.17.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
3d113d94be12997ec19f05b00dbb55ad numpy-1.17.0rc1-cp35-cp35m-manylinux1_i686.whl
0a6599f0492b3550843d091b0202dbe9 numpy-1.17.0rc1-cp35-cp35m-manylinux1_x86_64.whl
aec8543b9be95a4f3c8d038fc977a471 numpy-1.17.0rc1-cp35-cp35m-win32.whl
673ebd7abae0b7e1eb92cc23b0cd40f2 numpy-1.17.0rc1-cp35-cp35m-win_amd64.whl
ae2bdaa0ca4999db507ce3fb1b173fd8 numpy-1.17.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
fedb3f0b411b55882d43c6b54e4e1fe8 numpy-1.17.0rc1-cp36-cp36m-manylinux1_i686.whl
e2c4c37ac91ad7aaab0af167b45c9be3 numpy-1.17.0rc1-cp36-cp36m-manylinux1_x86_64.whl
67b54fa0ade6098f80a5b1570dca8066 numpy-1.17.0rc1-cp36-cp36m-win32.whl
42ae66a117cbf3032a2973aaa49cc751 numpy-1.17.0rc1-cp36-cp36m-win_amd64.whl
40a6fba952a011c1053b1867580ffe1c numpy-1.17.0rc1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
68b0c9781374584fd175366333ed16da numpy-1.17.0rc1-cp37-cp37m-manylinux1_i686.whl
578d62bd252aa229580f74198f5fd305 numpy-1.17.0rc1-cp37-cp37m-manylinux1_x86_64.whl
69d1ce7fbb2f4e74ce31f07e69bfce8c numpy-1.17.0rc1-cp37-cp37m-win32.whl
3058e6f76c7216e948648be2731daa08 numpy-1.17.0rc1-cp37-cp37m-win_amd64.whl
71a5b962f05d70c25dbe29aa76a2677b numpy-1.17.0rc1.tar.gz
0d3c728ee377cdc8b7c66488557b3d07 numpy-1.17.0rc1.zip

SHA256
------

1b46bbd810519dd3f75c7654346ef8cbc85164e9fbf263e6ab886a7b5414b4be numpy-1.17.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
487034fb9f0d0a98d200b2b304dd6ca7e14b563749c184b3e9f5fb6f0b61b8e3 numpy-1.17.0rc1-cp35-cp35m-manylinux1_i686.whl
0e574d32e251510ed8ccd1f354f4f77ae380278e294c98e5f87cde51f8775cd0 numpy-1.17.0rc1-cp35-cp35m-manylinux1_x86_64.whl
a11e133d0de38868c3b732f0bb047ce1a2b25f37c49b841acc52ca5522095dca numpy-1.17.0rc1-cp35-cp35m-win32.whl
c8c589628445247aebe030d456d1115de072d7f6ecc3ed5f7463f05b37dd54f6 numpy-1.17.0rc1-cp35-cp35m-win_amd64.whl
2360b5e6ca1929db1d5132933340bdc15c37c75c8cb9f2f1d7ee63ccf8df25e0 numpy-1.17.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
63279153109be338363f593f1d30b61412fc1bca258d0673244a6ae2d70fe743 numpy-1.17.0rc1-cp36-cp36m-manylinux1_i686.whl
ce4f4b9dd33fcf5b0b2fb37cb4b48668f8f2ed579d55d9799216f5a46c3009bd numpy-1.17.0rc1-cp36-cp36m-manylinux1_x86_64.whl
35c8f2d7b5748f87631f65502b547723c85064ef57c9f131333a2c4cf793efaa numpy-1.17.0rc1-cp36-cp36m-win32.whl
7e00fb54174d797fff2b158223805dccc2026bce6daddbb3e5ea2b7d92304d24 numpy-1.17.0rc1-cp36-cp36m-win_amd64.whl
6a8be628e8269c40024bb5178de25c06950eaaea99afd9784a3980f550ff7679 numpy-1.17.0rc1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
01e0f739d2dd40bccb8667f23bc26077d72ee22ac9cb4671111c680e2a067409 numpy-1.17.0rc1-cp37-cp37m-manylinux1_i686.whl
21b1a68dffca1af1936d35d40afbeda30e290ab2d398f6af6cc79bfa23e9957b numpy-1.17.0rc1-cp37-cp37m-manylinux1_x86_64.whl
0e415dc0509f3b44f3cbd0bc994a5862bc41a2301c2db1fe4a01259e0b3d9999 numpy-1.17.0rc1-cp37-cp37m-win32.whl
50fc29e91ffd3052c0f2faae577e6e6792df3017100d7b9683b158c44e0a21cd numpy-1.17.0rc1-cp37-cp37m-win_amd64.whl
79f5d946e06ddb19a8570061b6121087d4309678e52da2144f36840d6c1a1627 numpy-1.17.0rc1.tar.gz
f53df05f9ca4ec5d72709ffe349704f1f7d945ed59e815574b5c5687acb282c4 numpy-1.17.0rc1.zip

1.17.0rc2

.. currentmodule:: numpy

==========================

Page 16 of 23

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.