Numpy

Latest version: v2.2.4

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

Scan your dependencies

Page 17 of 24

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

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

1.17.0rc1

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

1.16.6

Not secure
===

The NumPy 1.16.6 release fixes bugs reported against the 1.16.5 release,
and also backports several enhancements from master that seem
appropriate for a release series that is the last to support Python 2.7.
The wheels on PyPI are linked with OpenBLAS v0.3.7, which should fix
errors on Skylake series cpus.

Downstream developers building this release should use Cython \>= 0.29.2
and, if using OpenBLAS, OpenBLAS \>= v0.3.7. The supported Python
versions are 2.7 and 3.5-3.7.

Highlights
==========

- The `np.testing.utils` functions have been updated from 1.19.0-dev0.
This improves the function documentation and error messages as well
extending the `assert_array_compare` function to additional types.

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

Allow matmul (``) to work with object arrays.

This is an enhancement that was added in NumPy 1.17 and seems reasonable
to include in the LTS 1.16 release series.

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

Fix regression in matmul (``) for boolean types

Booleans were being treated as integers rather than booleans, which was
a regression from previous behavior.

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

Array comparison assertions include maximum differences

Error messages from array comparison tests such as
`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.

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

A total of 10 people contributed to this release.

- CakeWithSteak
- Charles Harris
- Chris Burr
- Eric Wieser
- Fernando Saravia
- Lars Grueter
- Matti Picus
- Maxwell Aladago
- Qiming Sun
- Warren Weckesser

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

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

- [\14211](https://github.com/numpy/numpy/pull/14211): BUG: Fix
uint-overflow if padding with linear\_ramp and negative\...
- [\14275](https://github.com/numpy/numpy/pull/14275): BUG: fixing to
allow unpickling of PY3 pickles from PY2
- [\14340](https://github.com/numpy/numpy/pull/14340): BUG: Fix
misuse of .names and .fields in various places (backport\...
- [\14423](https://github.com/numpy/numpy/pull/14423): BUG: test, fix
regression in converting to ctypes.
- [\14434](https://github.com/numpy/numpy/pull/14434): BUG: Fixed
maximum relative error reporting in assert\_allclose
- [\14509](https://github.com/numpy/numpy/pull/14509): BUG: Fix
regression in boolean matmul.
- [\14686](https://github.com/numpy/numpy/pull/14686): BUG: properly
define PyArray\_DescrCheck
- [\14853](https://github.com/numpy/numpy/pull/14853): BLD: add \'apt
update\' to shippable
- [\14854](https://github.com/numpy/numpy/pull/14854): BUG: Fix
\_ctypes class circular reference. (\13808)
- [\14856](https://github.com/numpy/numpy/pull/14856): BUG: Fix
[np.einsum]{.title-ref} errors on Power9 Linux and z/Linux
- [\14863](https://github.com/numpy/numpy/pull/14863): BLD: Prevent
-flto from optimising long double representation\...
- [\14864](https://github.com/numpy/numpy/pull/14864): BUG: lib: Fix
histogram problem with signed integer arrays.
- [\15172](https://github.com/numpy/numpy/pull/15172): ENH: Backport
improvements to testing functions.
- [\15191](https://github.com/numpy/numpy/pull/15191): REL: Prepare
for 1.16.6 release.

Checksums
=========

MD5
---

4e224331023d95e98074d629b79cd4af numpy-1.16.6-cp27-cp27m-macosx_10_9_x86_64.whl
d3a48c10422909a5610b42380ed8ddc6 numpy-1.16.6-cp27-cp27m-manylinux1_i686.whl
6896018676021f6cff25abb30d9da143 numpy-1.16.6-cp27-cp27m-manylinux1_x86_64.whl
c961575405015b018a497e8f90db5e38 numpy-1.16.6-cp27-cp27m-win32.whl
8fa39acea08658ca355005c07e15f06f numpy-1.16.6-cp27-cp27m-win_amd64.whl
8802bee0140fd50aecddab0141d0eb82 numpy-1.16.6-cp27-cp27mu-manylinux1_i686.whl
2f9761f243249d33867f86c10c549dfa numpy-1.16.6-cp27-cp27mu-manylinux1_x86_64.whl
171a699d84b6ec8ac699627d606890e0 numpy-1.16.6-cp35-cp35m-macosx_10_9_intel.whl
7185860b022aa72cd9abb112b2d2b6cf numpy-1.16.6-cp35-cp35m-manylinux1_i686.whl
33f35e1b39f572ca98e697b7054fffd1 numpy-1.16.6-cp35-cp35m-manylinux1_x86_64.whl
2ec010ba75c0ac5602e1dbf7fe01ddbf numpy-1.16.6-cp35-cp35m-win32.whl
88c6c5e1f531e32f65f9f9437045f6f5 numpy-1.16.6-cp35-cp35m-win_amd64.whl
751f8ea2353e73bb3440f241ebad6c5d numpy-1.16.6-cp36-cp36m-macosx_10_9_x86_64.whl
819af6ec8c90e8209471ecbc6fc47b95 numpy-1.16.6-cp36-cp36m-manylinux1_i686.whl
56ab65e9d3bac5f502507d198634e675 numpy-1.16.6-cp36-cp36m-manylinux1_x86_64.whl
88d4ed4565d31a1978f4bf013f4ffd2e numpy-1.16.6-cp36-cp36m-win32.whl
167ac7f60d82bd32feb60e675a2c3b01 numpy-1.16.6-cp36-cp36m-win_amd64.whl
2e47bb698842b7289bb34951edf3be3d numpy-1.16.6-cp37-cp37m-macosx_10_9_x86_64.whl
169eb83d7f0a566207048cc282720ff8 numpy-1.16.6-cp37-cp37m-manylinux1_i686.whl
454ac4d3e09931bfb58cc01b679f4f5f numpy-1.16.6-cp37-cp37m-manylinux1_x86_64.whl
192593ce2df33b60eab445b31285ad96 numpy-1.16.6-cp37-cp37m-win32.whl
de3b92f1133613e1bd96d788ba9d4307 numpy-1.16.6-cp37-cp37m-win_amd64.whl
5e958c603605f3168b7b29f421f64cdd numpy-1.16.6.tar.gz
3dc21c84a295fe77eadf8f872685a7de numpy-1.16.6.zip

SHA256
------

08bf4f66f190822f4642e036accde8da810b87fffc0b9409e7a00d9e54760099 numpy-1.16.6-cp27-cp27m-macosx_10_9_x86_64.whl
d759ca1b76ac6f6b6159fb74984126035feb1dee9f68b4b961889b6dc090f33a numpy-1.16.6-cp27-cp27m-manylinux1_i686.whl
d3c5377c6122de876e695937ef41ffee5d2831154c5e4856481b93406cdfeecb numpy-1.16.6-cp27-cp27m-manylinux1_x86_64.whl
345b1748e6b0d4773a518868c783b16fdc33a22683bdb863484cd29fe8d206e6 numpy-1.16.6-cp27-cp27m-win32.whl
7a5a1f49a643aa1ab3e0579da0a48b8a48ea4369eb63c5065459d0a37f430237 numpy-1.16.6-cp27-cp27m-win_amd64.whl
817eed5a6ec2fc9c1a0ee3fbf9a441c66b6766383580513ccbdf3121acc0b4fb numpy-1.16.6-cp27-cp27mu-manylinux1_i686.whl
1680c8d5086a88d293dfd1a10b6429a09140cacee878034fa2308472ec835db4 numpy-1.16.6-cp27-cp27mu-manylinux1_x86_64.whl
a4383edb1b8caa989c3541a37ef204916322c503b8eeacc7ee8f4ba24cac97b8 numpy-1.16.6-cp35-cp35m-macosx_10_9_intel.whl
9bb690692f3101583b0b99f3be362742e4f8ebe6c7934fa36cd8ca2b567a0bcc numpy-1.16.6-cp35-cp35m-manylinux1_i686.whl
b9e334568ca1bf56598eddfac6db6a75bcf1c91aa90d598648f21e45207daeae numpy-1.16.6-cp35-cp35m-manylinux1_x86_64.whl
55cae40d2024c56e7b79fb070106cb4289dcc6b55c62dba1d89a6944448c6a53 numpy-1.16.6-cp35-cp35m-win32.whl
a1ffc9c770ccc2be9284310a3726c918b26ca19b34c0079e7a41aba950ab175f numpy-1.16.6-cp35-cp35m-win_amd64.whl
3f423b06bf67cd1dbf72e13e9b53a9ca71972e5abf712ee6cb5d8cbb178fff02 numpy-1.16.6-cp36-cp36m-macosx_10_9_x86_64.whl
34e6bb44e3d9a663f903b8c297ede865b4dff039aa43cc9a0b249e02c27f1396 numpy-1.16.6-cp36-cp36m-manylinux1_i686.whl
60c56922c9d759d664078fbef94132377ef1498ab27dd3d0cc7a21b346e68c06 numpy-1.16.6-cp36-cp36m-manylinux1_x86_64.whl
23cad5e5858dfb73c0e5bce03fe78e5e5908c22263156c58d4afdbb240683c6c numpy-1.16.6-cp36-cp36m-win32.whl
77399828d96cca386bfba453025c34f22569909d90332b961d3d4341cdb46a84 numpy-1.16.6-cp36-cp36m-win_amd64.whl
97ddfa7688295d460ee48a4d76337e9fdd2506d9d1d0eee7f0348b42b430da4c numpy-1.16.6-cp37-cp37m-macosx_10_9_x86_64.whl
390f6e14a8d73591f086680464aa101a9be9187d0c633f48c98b429b31b712c2 numpy-1.16.6-cp37-cp37m-manylinux1_i686.whl
a1772dc227e3e415eeaa646d25690dc854bddc3d626e454c7c27acba060cb900 numpy-1.16.6-cp37-cp37m-manylinux1_x86_64.whl
c9fb4fcfcdcaccfe2c4e1f9e0133ed59df5df2aa3655f3d391887e892b0a784c numpy-1.16.6-cp37-cp37m-win32.whl
6b1853364775edb85ceb0f7f8214d9e993d4d1d9bd3310eae80529ea14ba2ba6 numpy-1.16.6-cp37-cp37m-win_amd64.whl
61562ddac78765969959500b0da9c6f9ba7d77eeb12ec3927afae5303df08777 numpy-1.16.6.tar.gz
e5cf3fdf13401885e8eea8170624ec96225e2174eb0c611c6f26dd33b489e3ff numpy-1.16.6.zip

Page 17 of 24

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.