The fundamental package for scientific computing with Python.
OTHER License
Bot releases are hidden (Show)
NumPy 1.19.1 fixes several bugs found in the 1.19.0 release, replaces
several functions deprecated in the upcoming Python-3.9 release, has
improved support for AIX, and has a number of development related
updates to keep CI working with recent upstream changes.
This release supports Python 3.6-3.8. Cython >= 0.29.21 needs to be
used when building with Python 3.9 for testing purposes.
A total of 15 people contributed to this release. People with a "+" by
their names contributed a patch for the first time.
A total of 25 pull requests were merged for this release.
a57df319841a487b22b932aa99562fd8 numpy-1.19.1-cp36-cp36m-macosx_10_9_x86_64.whl
c86be0ba1efc221cdd3aba05c21ab7a6 numpy-1.19.1-cp36-cp36m-manylinux1_i686.whl
09bb5d4ff277bc2caddc107af963f006 numpy-1.19.1-cp36-cp36m-manylinux1_x86_64.whl
c150ffb56704ff319e8ea525773de49e numpy-1.19.1-cp36-cp36m-manylinux2010_i686.whl
e7c22cfc5956330df8fc107968472e28 numpy-1.19.1-cp36-cp36m-manylinux2010_x86_64.whl
9255520a51c6aa591489f68ac7a4cb0e numpy-1.19.1-cp36-cp36m-manylinux2014_aarch64.whl
7de3e77a0cda438724e1d8f312805742 numpy-1.19.1-cp36-cp36m-win32.whl
d6d00a2e7b5bbfa7f5f097e8f99d17a7 numpy-1.19.1-cp36-cp36m-win_amd64.whl
c8bc9f328f3a89ab35c374e9cf36dd80 numpy-1.19.1-cp37-cp37m-macosx_10_9_x86_64.whl
8e2eb1614b6a7ce286a5ddf39805564c numpy-1.19.1-cp37-cp37m-manylinux1_i686.whl
884540e9a94a9da88cd35311a40e1f98 numpy-1.19.1-cp37-cp37m-manylinux1_x86_64.whl
c8dea76ce437f9795a2c38fc3a94cc64 numpy-1.19.1-cp37-cp37m-manylinux2010_i686.whl
fceff6d052e0729e0bc4725d415a0424 numpy-1.19.1-cp37-cp37m-manylinux2010_x86_64.whl
8a40347a7aa0a78ad652761b18646b94 numpy-1.19.1-cp37-cp37m-manylinux2014_aarch64.whl
6f83733af7f25219b1309ed6e2125b40 numpy-1.19.1-cp37-cp37m-win32.whl
5ffe9aaa1be9790546bf0805349d11de numpy-1.19.1-cp37-cp37m-win_amd64.whl
9fc17dd30d41000be08a5e76bda7cd13 numpy-1.19.1-cp38-cp38-macosx_10_9_x86_64.whl
e164a68bb255e40835243843fd748786 numpy-1.19.1-cp38-cp38-manylinux1_i686.whl
831327c74d9d0c69adba8c626e09a842 numpy-1.19.1-cp38-cp38-manylinux1_x86_64.whl
8d5cfc3f45d07874d427e9d62dfe6b0d numpy-1.19.1-cp38-cp38-manylinux2010_i686.whl
08a1030ceea2f30f51e6c39264aec2e3 numpy-1.19.1-cp38-cp38-manylinux2010_x86_64.whl
a4dab4ffba3b1b2600400f89ab065112 numpy-1.19.1-cp38-cp38-manylinux2014_aarch64.whl
3b7770f38ed195e24692d6581e4634a1 numpy-1.19.1-cp38-cp38-win32.whl
8ec6183c736b4eacec8de80c98261af1 numpy-1.19.1-cp38-cp38-win_amd64.whl
a15c1aec844788f6e55c1da12f6bfa86 numpy-1.19.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
bb6f87f7b2d15a2e2a983b972afbcde5 numpy-1.19.1.tar.gz
2ccca1881b2766040149629614d22a3f numpy-1.19.1.zip
b1cca51512299841bf69add3b75361779962f9cee7d9ee3bb446d5982e925b69 numpy-1.19.1-cp36-cp36m-macosx_10_9_x86_64.whl
c9591886fc9cbe5532d5df85cb8e0cc3b44ba8ce4367bd4cf1b93dc19713da72 numpy-1.19.1-cp36-cp36m-manylinux1_i686.whl
cf1347450c0b7644ea142712619533553f02ef23f92f781312f6a3553d031fc7 numpy-1.19.1-cp36-cp36m-manylinux1_x86_64.whl
ed8a311493cf5480a2ebc597d1e177231984c818a86875126cfd004241a73c3e numpy-1.19.1-cp36-cp36m-manylinux2010_i686.whl
3673c8b2b29077f1b7b3a848794f8e11f401ba0b71c49fbd26fb40b71788b132 numpy-1.19.1-cp36-cp36m-manylinux2010_x86_64.whl
56ef7f56470c24bb67fb43dae442e946a6ce172f97c69f8d067ff8550cf782ff numpy-1.19.1-cp36-cp36m-manylinux2014_aarch64.whl
aaf42a04b472d12515debc621c31cf16c215e332242e7a9f56403d814c744624 numpy-1.19.1-cp36-cp36m-win32.whl
082f8d4dd69b6b688f64f509b91d482362124986d98dc7dc5f5e9f9b9c3bb983 numpy-1.19.1-cp36-cp36m-win_amd64.whl
e4f6d3c53911a9d103d8ec9518190e52a8b945bab021745af4939cfc7c0d4a9e numpy-1.19.1-cp37-cp37m-macosx_10_9_x86_64.whl
5b6885c12784a27e957294b60f97e8b5b4174c7504665333c5e94fbf41ae5d6a numpy-1.19.1-cp37-cp37m-manylinux1_i686.whl
1bc0145999e8cb8aed9d4e65dd8b139adf1919e521177f198529687dbf613065 numpy-1.19.1-cp37-cp37m-manylinux1_x86_64.whl
5a936fd51049541d86ccdeef2833cc89a18e4d3808fe58a8abeb802665c5af93 numpy-1.19.1-cp37-cp37m-manylinux2010_i686.whl
ef71a1d4fd4858596ae80ad1ec76404ad29701f8ca7cdcebc50300178db14dfc numpy-1.19.1-cp37-cp37m-manylinux2010_x86_64.whl
b9792b0ac0130b277536ab8944e7b754c69560dac0415dd4b2dbd16b902c8954 numpy-1.19.1-cp37-cp37m-manylinux2014_aarch64.whl
b12e639378c741add21fbffd16ba5ad25c0a1a17cf2b6fe4288feeb65144f35b numpy-1.19.1-cp37-cp37m-win32.whl
8343bf67c72e09cfabfab55ad4a43ce3f6bf6e6ced7acf70f45ded9ebb425055 numpy-1.19.1-cp37-cp37m-win_amd64.whl
e45f8e981a0ab47103181773cc0a54e650b2aef8c7b6cd07405d0fa8d869444a numpy-1.19.1-cp38-cp38-macosx_10_9_x86_64.whl
667c07063940e934287993366ad5f56766bc009017b4a0fe91dbd07960d0aba7 numpy-1.19.1-cp38-cp38-manylinux1_i686.whl
480fdd4dbda4dd6b638d3863da3be82873bba6d32d1fc12ea1b8486ac7b8d129 numpy-1.19.1-cp38-cp38-manylinux1_x86_64.whl
935c27ae2760c21cd7354402546f6be21d3d0c806fffe967f745d5f2de5005a7 numpy-1.19.1-cp38-cp38-manylinux2010_i686.whl
309cbcfaa103fc9a33ec16d2d62569d541b79f828c382556ff072442226d1968 numpy-1.19.1-cp38-cp38-manylinux2010_x86_64.whl
7ed448ff4eaffeb01094959b19cbaf998ecdee9ef9932381420d514e446601cd numpy-1.19.1-cp38-cp38-manylinux2014_aarch64.whl
de8b4a9b56255797cbddb93281ed92acbc510fb7b15df3f01bd28f46ebc4edae numpy-1.19.1-cp38-cp38-win32.whl
92feb989b47f83ebef246adabc7ff3b9a59ac30601c3f6819f8913458610bdcc numpy-1.19.1-cp38-cp38-win_amd64.whl
e1b1dc0372f530f26a03578ac75d5e51b3868b9b76cd2facba4c9ee0eb252ab1 numpy-1.19.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
1396e6c3d20cbfc119195303b0272e749610b7042cc498be4134f013e9a3215c numpy-1.19.1.tar.gz
b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491 numpy-1.19.1.zip
This NumPy release is marked by the removal of much technical debt:
support for Python 2 has been removed, many deprecations have been
expired, and documentation has been improved. The polishing of the
random module continues apace with bug fixes and better usability from
Cython.
The Python versions supported for this release are 3.6-3.8. Downstream
developers should use Cython >= 0.29.16 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid problems on the Skylake architecture.
Code compatibility with Python versions < 3.6 (including Python 2)
was dropped from both the python and C code. The shims in
numpy.compat
will remain to support third-party packages, but they
may be deprecated in a future release. Note that 1.19.x will not
compile with earlier versions of Python due to the use of f-strings.
(gh-15233)
numpy.insert
and numpy.delete
can no longer be passed an axis on 0d arraysThis concludes a deprecation from 1.9, where when an axis
argument was
passed to a call to ~numpy.insert
and ~numpy.delete
on a 0d array,
the axis
and obj
argument and indices would be completely ignored.
In these cases, insert(arr, "nonsense", 42, axis=0)
would actually
overwrite the entire array, while delete(arr, "nonsense", axis=0)
would be arr.copy()
Now passing axis
on a 0d array raises ~numpy.AxisError
.
(gh-15802)
numpy.delete
no longer ignores out-of-bounds indicesThis concludes deprecations from 1.8 and 1.9, where np.delete
would
ignore both negative and out-of-bounds items in a sequence of indices.
This was at odds with its behavior when passed a single index.
Now out-of-bounds items throw IndexError
, and negative items index
from the end.
(gh-15804)
numpy.insert
and numpy.delete
no longer accept non-integral indicesThis concludes a deprecation from 1.9, where sequences of non-integers
indices were allowed and cast to integers. Now passing sequences of
non-integral indices raises IndexError
, just like it does when passing
a single non-integral scalar.
(gh-15805)
numpy.delete
no longer casts boolean indices to integersThis concludes a deprecation from 1.8, where np.delete
would cast
boolean arrays and scalars passed as an index argument into integer
indices. The behavior now is to treat boolean arrays as a mask, and to
raise an error on boolean scalars.
(gh-15815)
numpy.random.Generator.dirichlet
A bug in the generation of random variates for the Dirichlet
distribution with small 'alpha' values was fixed by using a different
algorithm when max(alpha) < 0.1
. Because of the change, the stream of
variates generated by dirichlet
in this case will be different from
previous releases.
(gh-14924)
PyArray_ConvertToCommonType
The promotion of mixed scalars and arrays in
PyArray_ConvertToCommonType
has been changed to adhere to those used
by np.result_type
. This means that input such as
(1000, np.array([1], dtype=np.uint8)))
will now return uint16
dtypes. In most cases the behaviour is unchanged. Note that the use of
this C-API function is generally discouraged. This also fixes
np.choose
to behave the same way as the rest of NumPy in this respect.
(gh-14933)
The fasttake and fastputmask slots are now never used and must always be
set to NULL. This will result in no change in behaviour. However, if a
user dtype should set one of these a DeprecationWarning will be given.
(gh-14942)
np.ediff1d
casting behaviour with to_end
and to_begin
np.ediff1d
now uses the "same_kind"
casting rule for its additional
to_end
and to_begin
arguments. This ensures type safety except when
the input array has a smaller integer type than to_begin
or to_end
.
In rare cases, the behaviour will be more strict than it was previously
in 1.16 and 1.17. This is necessary to solve issues with floating point
NaN.
(gh-14981)
Objects with len(obj) == 0
which implement an "array-like"
interface, meaning an object implementing obj.__array__()
,
obj.__array_interface__
, obj.__array_struct__
, or the python buffer
interface and which are also sequences (i.e. Pandas objects) will now
always retain there shape correctly when converted to an array. If such
an object has a shape of (0, 1)
previously, it could be converted into
an array of shape (0,)
(losing all dimensions after the first 0).
(gh-14995)
multiarray.int_asbuffer
As part of the continued removal of Python 2 compatibility,
multiarray.int_asbuffer
was removed. On Python 3, it threw a
NotImplementedError
and was unused internally. It is expected that
there are no downstream use cases for this method with Python 3.
(gh-15229)
numpy.distutils.compat
has been removedThis module contained only the function get_exception()
, which was
used as:
try:
...
except Exception:
e = get_exception()
Its purpose was to handle the change in syntax introduced in Python 2.6,
from except Exception, e:
to except Exception as e:
, meaning it was
only necessary for codebases supporting Python 2.5 and older.
(gh-15255)
issubdtype
no longer interprets float
as np.floating
numpy.issubdtype
had a FutureWarning since NumPy 1.14 which has
expired now. This means that certain input where the second argument was
neither a datatype nor a NumPy scalar type (such as a string or a python
type like int
or float
) will now be consistent with passing in
np.dtype(arg2).type
. This makes the result consistent with
expectations and leads to a false result in some cases which previously
returned true.
(gh-15773)
round
on scalars to be consistent with PythonOutput of the __round__
dunder method and consequently the Python
built-in round
has been changed to be a Python int
to be consistent
with calling it on Python float
objects when called with no arguments.
Previously, it would return a scalar of the np.dtype
that was passed
in.
(gh-15840)
numpy.ndarray
constructor no longer interprets strides=()
as strides=None
The former has changed to have the expected meaning of setting
numpy.ndarray.strides
to ()
, while the latter continues to result in
strides being chosen automatically.
(gh-15882)
The C-level casts from strings were simplified. This changed also fixes
string to datetime and timedelta casts to behave correctly (i.e. like
Python casts using string_arr.astype("M8")
while previously the cast
would behave like string_arr.astype(np.int_).astype("M8")
. This only
affects code using low-level C-API to do manual casts (not full array
casts) of single scalar values or using e.g. PyArray_GetCastFunc
, and
should thus not affect the vast majority of users.
(gh-16068)
SeedSequence
with small seeds no longer conflicts with spawningSmall seeds (less than 2**96
) were previously implicitly 0-padded out
to 128 bits, the size of the internal entropy pool. When spawned, the
spawn key was concatenated before the 0-padding. Since the first spawn
key is (0,)
, small seeds before the spawn created the same states as
the first spawned SeedSequence
. Now, the seed is explicitly 0-padded
out to the internal pool size before concatenating the spawn key.
Spawned SeedSequences
will produce different results than in the
previous release. Unspawned SeedSequences
will still produce the same
results.
(gh-16551)
dtype=object
for ragged inputCalling np.array([[1, [1, 2, 3]])
will issue a DeprecationWarning
as
per NEP 34. Users should
explicitly use dtype=object
to avoid the warning.
(gh-15119)
shape=0
to factory functions in numpy.rec
is deprecated0
is treated as a special case and is aliased to None
in the
functions:
numpy.core.records.fromarrays
numpy.core.records.fromrecords
numpy.core.records.fromstring
numpy.core.records.fromfile
In future, 0
will not be special cased, and will be treated as an
array length like any other integer.
(gh-15217)
The following C-API functions are probably unused and have been
deprecated:
PyArray_GetArrayParamsFromObject
PyUFunc_GenericFunction
PyUFunc_SetUsesArraysAsData
In most cases PyArray_GetArrayParamsFromObject
should be replaced by
converting to an array, while PyUFunc_GenericFunction
can be replaced
with PyObject_Call
(see documentation for details).
(gh-15427)
The super classes of scalar types, such as np.integer
, np.generic
,
or np.inexact
will now give a deprecation warning when converted to a
dtype (or used in a dtype keyword argument). The reason for this is that
np.integer
is converted to np.int_
, while it would be expected to
represent any integer (e.g. also int8
, int16
, etc. For example,
dtype=np.floating
is currently identical to dtype=np.float64
, even
though also np.float32
is a subclass of np.floating
.
(gh-15534)
round
for np.complexfloating
scalarsOutput of the __round__
dunder method and consequently the Python
built-in round
has been deprecated on complex scalars. This does not
affect np.round
.
(gh-15840)
numpy.ndarray.tostring()
is deprecated in favor of tobytes()
~numpy.ndarray.tobytes
has existed since the 1.9 release, but until
this release ~numpy.ndarray.tostring
emitted no warning. The change to
emit a warning brings NumPy in line with the builtin array.array
methods of the same name.
(gh-15867)
const
dimensions in API functionsThe following functions now accept a constant array of npy_intp
:
PyArray_BroadcastToShape
PyArray_IntTupleFromIntp
PyArray_OverflowMultiplyList
Previously the caller would have to cast away the const-ness to call
these functions.
(gh-15251)
UFuncGenericFunction
now expects pointers to const dimension
and
strides
as arguments. This means inner loops may no longer modify
either dimension
or strides
. This change leads to an
incompatible-pointer-types
warning forcing users to either ignore the
compiler warnings or to const qualify their own loop signatures.
(gh-15355)
numpy.frompyfunc
now accepts an identity argumentThis allows the `numpy.ufunc.identity
{.interpreted-text
role="attr"}[ attribute to be set on the resulting ufunc, meaning it can
be used for empty and multi-dimensional calls to
:meth:]{.title-ref}[numpy.ufunc.reduce]{.title-ref}`.
(gh-8255)
np.str_
scalars now support the buffer protocolnp.str_
arrays are always stored as UCS4, so the corresponding scalars
now expose this through the buffer interface, meaning
memoryview(np.str_('test'))
now works.
(gh-15385)
subok
option for numpy.copy
A new kwarg, subok
, was added to numpy.copy
to allow users to toggle
the behavior of numpy.copy
with respect to array subclasses. The
default value is False
which is consistent with the behavior of
numpy.copy
for previous numpy versions. To create a copy that
preserves an array subclass with numpy.copy
, call
np.copy(arr, subok=True)
. This addition better documents that the
default behavior of numpy.copy
differs from the numpy.ndarray.copy
method which respects array subclasses by default.
(gh-15685)
numpy.linalg.multi_dot
now accepts an out
argumentout
can be used to avoid creating unnecessary copies of the final
product computed by numpy.linalg.multidot
.
(gh-15715)
keepdims
parameter for numpy.count_nonzero
The parameter keepdims
was added to numpy.count_nonzero
. The
parameter has the same meaning as it does in reduction functions such as
numpy.sum
or numpy.mean
.
(gh-15870)
equal_nan
parameter for numpy.array_equal
The keyword argument equal_nan
was added to numpy.array_equal
.
equal_nan
is a boolean value that toggles whether or not nan
values
are considered equal in comparison (default is False
). This matches
API used in related functions such as numpy.isclose
and
numpy.allclose
.
(gh-16128)
Replace npy_cpu_supports
which was a gcc specific mechanism to test
support of AVX with more general functions npy_cpu_init
and
npy_cpu_have
, and expose the results via a NPY_CPU_HAVE
c-macro as
well as a python-level __cpu_features__
dictionary.
(gh-13421)
Use 64-bit integer size on 64-bit platforms in the fallback LAPACK
library, which is used when the system has no LAPACK installed, allowing
it to deal with linear algebra for large arrays.
(gh-15218)
np.exp
when input is np.float64
Use AVX512 intrinsic to implement np.exp
when input is np.float64
,
which can improve the performance of np.exp
with np.float64
input
5-7x faster than before. The _multiarray_umath.so
module has grown
about 63 KB on linux64.
(gh-15648)
On Linux NumPy has previously added support for madavise hugepages which
can improve performance for very large arrays. Unfortunately, on older
Kernel versions this led to peformance regressions, thus by default the
support has been disabled on kernels before version 4.6. To override the
default, you can use the environment variable:
NUMPY_MADVISE_HUGEPAGE=0
or set it to 1 to force enabling support. Note that this only makes a
difference if the operating system is set up to use madvise transparent
hugepage.
(gh-15769)
numpy.einsum
accepts NumPy int64
type in subscript listThere is no longer a type error thrown when numpy.einsum
is passed a
NumPy int64
array as its subscript list.
(gh-16080)
np.logaddexp2.identity
changed to -inf
The ufunc ~numpy.logaddexp2
now has an identity of -inf
, allowing it
to be called on empty sequences. This matches the identity of
~numpy.logaddexp
.
(gh-16102)
__array__
A code path and test have been in the code since NumPy 0.4 for a
two-argument variant of __array__(dtype=None, context=None)
. It was
activated when calling ufunc(op)
or ufunc.reduce(op)
if
op.__array__
existed. However that variant is not documented, and it
is not clear what the intention was for its use. It has been removed.
(gh-15118)
numpy.random._bit_generator
moved to numpy.random.bit_generator
In order to expose numpy.random.BitGenerator
and
numpy.random.SeedSequence
to Cython, the _bitgenerator
module is now
public as numpy.random.bit_generator
pxd
filec_distributions.pxd
provides access to the c functions behind many of
the random distributions from Cython, making it convenient to use and
extend them.
(gh-15463)
eigh
and cholesky
methods in numpy.random.multivariate_normal
Previously, when passing method='eigh'
or method='cholesky'
,
numpy.random.multivariate_normal
produced samples from the wrong
distribution. This is now fixed.
(gh-15872)
MT19937.jumped
This fix changes the stream produced from jumped MT19937 generators. It
does not affect the stream produced using RandomState
or MT19937
that are directly seeded.
The translation of the jumping code for the MT19937 contained a reversed
loop ordering. MT19937.jumped
matches the Makoto Matsumoto's original
implementation of the Horner and Sliding Window jump methods.
(gh-16153)
17e9b15e5b54f6963da30e9de93437b8 numpy-1.19.0-cp36-cp36m-macosx_10_9_x86_64.whl
2117953099e3343e6ac642de66c7127f numpy-1.19.0-cp36-cp36m-manylinux1_i686.whl
fe0d7f18fd5af93cb027fe0e2462b3bc numpy-1.19.0-cp36-cp36m-manylinux1_x86_64.whl
23a76cbf0cec80d59d48f2342de13cb2 numpy-1.19.0-cp36-cp36m-manylinux2010_i686.whl
3b35908cd21ce6558ec61806bbc9efee numpy-1.19.0-cp36-cp36m-manylinux2010_x86_64.whl
b35af24ffa550054aadb620f6afb7d67 numpy-1.19.0-cp36-cp36m-manylinux2014_aarch64.whl
5d2a0e9c23383abed01c2795c6e9f2c1 numpy-1.19.0-cp36-cp36m-win32.whl
e0548c4ec436abb249d2e59ed5fd727f numpy-1.19.0-cp36-cp36m-win_amd64.whl
3f939fa2f3b2f881862f7e02a0116970 numpy-1.19.0-cp37-cp37m-macosx_10_9_x86_64.whl
012026c54f196b8f342e4b49cb4b9294 numpy-1.19.0-cp37-cp37m-manylinux1_i686.whl
27227fdd6329f098fc9a85e9d40b1916 numpy-1.19.0-cp37-cp37m-manylinux1_x86_64.whl
a471c34d7a07468c09696165eae0cd57 numpy-1.19.0-cp37-cp37m-manylinux2010_i686.whl
27af6195869cd518f5d2a71885f21806 numpy-1.19.0-cp37-cp37m-manylinux2010_x86_64.whl
62dbe6623e9aebd2bb1aef6d1e0f815d numpy-1.19.0-cp37-cp37m-manylinux2014_aarch64.whl
760e6b5681eea93cf6c85bcd1a739068 numpy-1.19.0-cp37-cp37m-win32.whl
d75a6104a6cce3c669e2363470d567bc numpy-1.19.0-cp37-cp37m-win_amd64.whl
09f870d54906d964bd0f93b22695f9ae numpy-1.19.0-cp38-cp38-macosx_10_9_x86_64.whl
ea9f4248d9ba0c647e07427cb542c2bf numpy-1.19.0-cp38-cp38-manylinux1_i686.whl
11b7a5b055bb1417c8935d267b7d88de numpy-1.19.0-cp38-cp38-manylinux1_x86_64.whl
6f6dec62163fa21259b7157516cc9e84 numpy-1.19.0-cp38-cp38-manylinux2010_i686.whl
ca83ee74cbdac0ffe3ec2c8c79294d67 numpy-1.19.0-cp38-cp38-manylinux2010_x86_64.whl
560567c2b3017ed146c3d08b0a58cadb numpy-1.19.0-cp38-cp38-manylinux2014_aarch64.whl
d160b64e914c5f2e4807943c83dae54a numpy-1.19.0-cp38-cp38-win32.whl
4e563e6434af5b90f1f99d9b916b2525 numpy-1.19.0-cp38-cp38-win_amd64.whl
a26c769ffe249f02cb73e6fbec7ff9ca numpy-1.19.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
d59aadf47354bd10c7b9996032ba4da0 numpy-1.19.0.tar.gz
3f5ce88a859302f0a1aceb5f75b563fc numpy-1.19.0.zip
63d971bb211ad3ca37b2adecdd5365f40f3b741a455beecba70fd0dde8b2a4cb numpy-1.19.0-cp36-cp36m-macosx_10_9_x86_64.whl
b6aaeadf1e4866ca0fdf7bb4eed25e521ae21a7947c59f78154b24fc7abbe1dd numpy-1.19.0-cp36-cp36m-manylinux1_i686.whl
13af0184177469192d80db9bd02619f6fa8b922f9f327e077d6f2a6acb1ce1c0 numpy-1.19.0-cp36-cp36m-manylinux1_x86_64.whl
356f96c9fbec59974a592452ab6a036cd6f180822a60b529a975c9467fcd5f23 numpy-1.19.0-cp36-cp36m-manylinux2010_i686.whl
fa1fe75b4a9e18b66ae7f0b122543c42debcf800aaafa0212aaff3ad273c2596 numpy-1.19.0-cp36-cp36m-manylinux2010_x86_64.whl
cbe326f6d364375a8e5a8ccb7e9cd73f4b2f6dc3b2ed205633a0db8243e2a96a numpy-1.19.0-cp36-cp36m-manylinux2014_aarch64.whl
a2e3a39f43f0ce95204beb8fe0831199542ccab1e0c6e486a0b4947256215632 numpy-1.19.0-cp36-cp36m-win32.whl
7b852817800eb02e109ae4a9cef2beda8dd50d98b76b6cfb7b5c0099d27b52d4 numpy-1.19.0-cp36-cp36m-win_amd64.whl
d97a86937cf9970453c3b62abb55a6475f173347b4cde7f8dcdb48c8e1b9952d numpy-1.19.0-cp37-cp37m-macosx_10_9_x86_64.whl
a86c962e211f37edd61d6e11bb4df7eddc4a519a38a856e20a6498c319efa6b0 numpy-1.19.0-cp37-cp37m-manylinux1_i686.whl
d34fbb98ad0d6b563b95de852a284074514331e6b9da0a9fc894fb1cdae7a79e numpy-1.19.0-cp37-cp37m-manylinux1_x86_64.whl
658624a11f6e1c252b2cd170d94bf28c8f9410acab9f2fd4369e11e1cd4e1aaf numpy-1.19.0-cp37-cp37m-manylinux2010_i686.whl
4d054f013a1983551254e2379385e359884e5af105e3efe00418977d02f634a7 numpy-1.19.0-cp37-cp37m-manylinux2010_x86_64.whl
26a45798ca2a4e168d00de75d4a524abf5907949231512f372b217ede3429e98 numpy-1.19.0-cp37-cp37m-manylinux2014_aarch64.whl
3c40c827d36c6d1c3cf413694d7dc843d50997ebffbc7c87d888a203ed6403a7 numpy-1.19.0-cp37-cp37m-win32.whl
be62aeff8f2f054eff7725f502f6228298891fd648dc2630e03e44bf63e8cee0 numpy-1.19.0-cp37-cp37m-win_amd64.whl
dd53d7c4a69e766e4900f29db5872f5824a06827d594427cf1a4aa542818b796 numpy-1.19.0-cp38-cp38-macosx_10_9_x86_64.whl
30a59fb41bb6b8c465ab50d60a1b298d1cd7b85274e71f38af5a75d6c475d2d2 numpy-1.19.0-cp38-cp38-manylinux1_i686.whl
df1889701e2dfd8ba4dc9b1a010f0a60950077fb5242bb92c8b5c7f1a6f2668a numpy-1.19.0-cp38-cp38-manylinux1_x86_64.whl
33c623ef9ca5e19e05991f127c1be5aeb1ab5cdf30cb1c5cf3960752e58b599b numpy-1.19.0-cp38-cp38-manylinux2010_i686.whl
26f509450db547e4dfa3ec739419b31edad646d21fb8d0ed0734188b35ff6b27 numpy-1.19.0-cp38-cp38-manylinux2010_x86_64.whl
7b57f26e5e6ee2f14f960db46bd58ffdca25ca06dd997729b1b179fddd35f5a3 numpy-1.19.0-cp38-cp38-manylinux2014_aarch64.whl
a8705c5073fe3fcc297fb8e0b31aa794e05af6a329e81b7ca4ffecab7f2b95ef numpy-1.19.0-cp38-cp38-win32.whl
c2edbb783c841e36ca0fa159f0ae97a88ce8137fb3a6cd82eae77349ba4b607b numpy-1.19.0-cp38-cp38-win_amd64.whl
8cde829f14bd38f6da7b2954be0f2837043e8b8d7a9110ec5e318ae6bf706610 numpy-1.19.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl
153cf8b0176e57a611931981acfe093d2f7fef623b48f91176efa199798a6b90 numpy-1.19.0.tar.gz
76766cc80d6128750075378d3bb7812cf146415bd29b588616f72c943c00d598 numpy-1.19.0.zip
This is a short release to allow pickle protocol=5
to be used in
Python3.5. It is motivated by the recent backport of pickle5 to
Python3.5.
The Python versions supported in this release are 3.5-3.8. Downstream
developers should use Cython >= 0.29.15 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid errors on the Skylake architecture.
A total of 3 people contributed to this release. People with a "+" by
their names contributed a patch for the first time.
A total of 2 pull requests were merged for this release.
f923519347ba9f6bca59dce0583bdbd5 numpy-1.18.5-cp35-cp35m-macosx_10_9_intel.whl
79990253bda9ffa2db75152e77c318e9 numpy-1.18.5-cp35-cp35m-manylinux1_i686.whl
d5bf77d6caf4f83ed871ab9e4f9d1f72 numpy-1.18.5-cp35-cp35m-manylinux1_x86_64.whl
2cc7cc1b1640d6b50c50d96a35624698 numpy-1.18.5-cp35-cp35m-win32.whl
5a93e72e30c56462492a29315e19c0cc numpy-1.18.5-cp35-cp35m-win_amd64.whl
caef5b4785e5deb6891f118a49d48ccc numpy-1.18.5-cp36-cp36m-macosx_10_9_x86_64.whl
402be8c771c2541c7ee936ef63c9ebc0 numpy-1.18.5-cp36-cp36m-manylinux1_i686.whl
259dbb8694209921d56ffb091ae42b5b numpy-1.18.5-cp36-cp36m-manylinux1_x86_64.whl
9188a301a9640836322f2dc926640515 numpy-1.18.5-cp36-cp36m-win32.whl
acfa82d4e66601386dad19ad3a3983a5 numpy-1.18.5-cp36-cp36m-win_amd64.whl
bc1ebaa1ecf20f22b72cbb824c9cbc21 numpy-1.18.5-cp37-cp37m-macosx_10_9_x86_64.whl
97f27a6e2e6951cf8107132e7c628004 numpy-1.18.5-cp37-cp37m-manylinux1_i686.whl
f261237ab3d47b9b6e859bf240014a48 numpy-1.18.5-cp37-cp37m-manylinux1_x86_64.whl
08bdf2289600c5c728a2668b585fdd02 numpy-1.18.5-cp37-cp37m-win32.whl
8b793d97dae258d06e63c452a2684b16 numpy-1.18.5-cp37-cp37m-win_amd64.whl
2b9153362bf0e53574abc2df048a1578 numpy-1.18.5-cp38-cp38-macosx_10_9_x86_64.whl
1715c674b3070ccd90f56fa2cd48cce1 numpy-1.18.5-cp38-cp38-manylinux1_i686.whl
2347f759a1b8bc27423bb5ece6ae1c79 numpy-1.18.5-cp38-cp38-manylinux1_x86_64.whl
b66c03695208dd843b78acb32557a765 numpy-1.18.5-cp38-cp38-win32.whl
81c9e86442602529b3c52d4af7a515b7 numpy-1.18.5-cp38-cp38-win_amd64.whl
ca23173650ded5585f7030fee91005bf numpy-1.18.5.tar.gz
0d426af04e17cd480ecf3cd70743eaf4 numpy-1.18.5.zip
e91d31b34fc7c2c8f756b4e902f901f856ae53a93399368d9a0dc7be17ed2ca0 numpy-1.18.5-cp35-cp35m-macosx_10_9_intel.whl
7d42ab8cedd175b5ebcb39b5208b25ba104842489ed59fbb29356f671ac93583 numpy-1.18.5-cp35-cp35m-manylinux1_i686.whl
a78e438db8ec26d5d9d0e584b27ef25c7afa5a182d1bf4d05e313d2d6d515271 numpy-1.18.5-cp35-cp35m-manylinux1_x86_64.whl
a87f59508c2b7ceb8631c20630118cc546f1f815e034193dc72390db038a5cb3 numpy-1.18.5-cp35-cp35m-win32.whl
965df25449305092b23d5145b9bdaeb0149b6e41a77a7d728b1644b3c99277c1 numpy-1.18.5-cp35-cp35m-win_amd64.whl
ac792b385d81151bae2a5a8adb2b88261ceb4976dbfaaad9ce3a200e036753dc numpy-1.18.5-cp36-cp36m-macosx_10_9_x86_64.whl
ef627986941b5edd1ed74ba89ca43196ed197f1a206a3f18cc9faf2fb84fd675 numpy-1.18.5-cp36-cp36m-manylinux1_i686.whl
f718a7949d1c4f622ff548c572e0c03440b49b9531ff00e4ed5738b459f011e8 numpy-1.18.5-cp36-cp36m-manylinux1_x86_64.whl
4064f53d4cce69e9ac613256dc2162e56f20a4e2d2086b1956dd2fcf77b7fac5 numpy-1.18.5-cp36-cp36m-win32.whl
b03b2c0badeb606d1232e5f78852c102c0a7989d3a534b3129e7856a52f3d161 numpy-1.18.5-cp36-cp36m-win_amd64.whl
a7acefddf994af1aeba05bbbafe4ba983a187079f125146dc5859e6d817df824 numpy-1.18.5-cp37-cp37m-macosx_10_9_x86_64.whl
cd49930af1d1e49a812d987c2620ee63965b619257bd76eaaa95870ca08837cf numpy-1.18.5-cp37-cp37m-manylinux1_i686.whl
b39321f1a74d1f9183bf1638a745b4fd6fe80efbb1f6b32b932a588b4bc7695f numpy-1.18.5-cp37-cp37m-manylinux1_x86_64.whl
cae14a01a159b1ed91a324722d746523ec757357260c6804d11d6147a9e53e3f numpy-1.18.5-cp37-cp37m-win32.whl
0172304e7d8d40e9e49553901903dc5f5a49a703363ed756796f5808a06fc233 numpy-1.18.5-cp37-cp37m-win_amd64.whl
e15b382603c58f24265c9c931c9a45eebf44fe2e6b4eaedbb0d025ab3255228b numpy-1.18.5-cp38-cp38-macosx_10_9_x86_64.whl
3676abe3d621fc467c4c1469ee11e395c82b2d6b5463a9454e37fe9da07cd0d7 numpy-1.18.5-cp38-cp38-manylinux1_i686.whl
4674f7d27a6c1c52a4d1aa5f0881f1eff840d2206989bae6acb1c7668c02ebfb numpy-1.18.5-cp38-cp38-manylinux1_x86_64.whl
9c9d6531bc1886454f44aa8f809268bc481295cf9740827254f53c30104f074a numpy-1.18.5-cp38-cp38-win32.whl
3dd6823d3e04b5f223e3e265b4a1eae15f104f4366edd409e5a5e413a98f911f numpy-1.18.5-cp38-cp38-win_amd64.whl
2c095bd1c5290966cceee8b6ef5cd66f13cd0e9d6d0e8d6fc8961abd64a8e51f numpy-1.18.5.tar.gz
34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b numpy-1.18.5.zip
This NumPy release is marked by the removal of much technical debt:
support for Python 2 has been removed, many deprecations have been
expired, and documentation has been improved. The polishing of the
random module continues apace with bug fixes and better usability from
Cython.
The Python versions supported for this release are 3.6-3.8. Downstream
developers should use Cython >= 0.29.16 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid problems on the Skylake architecture.
Code compatibility with Python versions < 3.6 (including Python 2)
was dropped from both the python and C code. The shims in
numpy.compat
will remain to support third-party packages, but they
may be deprecated in a future release. Note that 1.19.x will not
compile with earlier versions of Python due to the use of f-strings.
(gh-15233)
numpy.insert
and numpy.delete
can no longer be passed an axis on 0d arraysThis concludes a deprecation from 1.9, where when an axis
argument was
passed to a call to ~numpy.insert
and ~numpy.delete
on a 0d array,
the axis
and obj
argument and indices would be completely ignored.
In these cases, insert(arr, "nonsense", 42, axis=0)
would actually
overwrite the entire array, while delete(arr, "nonsense", axis=0)
would be arr.copy()
Now passing axis
on a 0d array raises ~numpy.AxisError
.
(gh-15802)
numpy.delete
no longer ignores out-of-bounds indicesThis concludes deprecations from 1.8 and 1.9, where np.delete
would
ignore both negative and out-of-bounds items in a sequence of indices.
This was at odds with its behavior when passed a single index.
Now out-of-bounds items throw IndexError
, and negative items index
from the end.
(gh-15804)
numpy.insert
and numpy.delete
no longer accept non-integral indicesThis concludes a deprecation from 1.9, where sequences of non-integers
indices were allowed and cast to integers. Now passing sequences of
non-integral indices raises IndexError
, just like it does when passing
a single non-integral scalar.
(gh-15805)
numpy.delete
no longer casts boolean indices to integersThis concludes a deprecation from 1.8, where np.delete
would cast
boolean arrays and scalars passed as an index argument into integer
indices. The behavior now is to treat boolean arrays as a mask, and to
raise an error on boolean scalars.
(gh-15815)
numpy.random.Generator.dirichlet
A bug in the generation of random variates for the Dirichlet
distribution with small 'alpha' values was fixed by using a different
algorithm when max(alpha) < 0.1
. Because of the change, the stream of
variates generated by dirichlet
in this case will be different from
previous releases.
(gh-14924)
PyArray_ConvertToCommonType
The promotion of mixed scalars and arrays in
PyArray_ConvertToCommonType
has been changed to adhere to those used
by np.result_type
. This means that input such as
(1000, np.array([1], dtype=np.uint8)))
will now return uint16
dtypes. In most cases the behaviour is unchanged. Note that the use of
this C-API function is generally discouraged. This also fixes
np.choose
to behave the same way as the rest of NumPy in this respect.
(gh-14933)
The fasttake and fastputmask slots are now never used and must always be
set to NULL. This will result in no change in behaviour. However, if a
user dtype should set one of these a DeprecationWarning will be given.
(gh-14942)
np.ediff1d
casting behaviour with to_end
and to_begin
np.ediff1d
now uses the "same_kind"
casting rule for its additional
to_end
and to_begin
arguments. This ensures type safety except when
the input array has a smaller integer type than to_begin
or to_end
.
In rare cases, the behaviour will be more strict than it was previously
in 1.16 and 1.17. This is necessary to solve issues with floating point
NaN.
(gh-14981)
Objects with len(obj) == 0
which implement an "array-like"
interface, meaning an object implementing obj.__array__()
,
obj.__array_interface__
, obj.__array_struct__
, or the python buffer
interface and which are also sequences (i.e. Pandas objects) will now
always retain there shape correctly when converted to an array. If such
an object has a shape of (0, 1)
previously, it could be converted into
an array of shape (0,)
(losing all dimensions after the first 0).
(gh-14995)
multiarray.int_asbuffer
As part of the continued removal of Python 2 compatibility,
multiarray.int_asbuffer
was removed. On Python 3, it threw a
NotImplementedError
and was unused internally. It is expected that
there are no downstream use cases for this method with Python 3.
(gh-15229)
numpy.distutils.compat
has been removedThis module contained only the function get_exception()
, which was
used as:
try:
...
except Exception:
e = get_exception()
Its purpose was to handle the change in syntax introduced in Python 2.6,
from except Exception, e:
to except Exception as e:
, meaning it was
only necessary for codebases supporting Python 2.5 and older.
(gh-15255)
issubdtype
no longer interprets float
as np.floating
numpy.issubdtype
had a FutureWarning since NumPy 1.14 which has
expired now. This means that certain input where the second argument was
neither a datatype nor a NumPy scalar type (such as a string or a python
type like int
or float
) will now be consistent with passing in
np.dtype(arg2).type
. This makes the result consistent with
expectations and leads to a false result in some cases which previously
returned true.
(gh-15773)
round
on scalars to be consistent with PythonOutput of the __round__
dunder method and consequently the Python
built-in round
has been changed to be a Python int
to be consistent
with calling it on Python float
objects when called with no arguments.
Previously, it would return a scalar of the np.dtype
that was passed
in.
(gh-15840)
numpy.ndarray
constructor no longer interprets strides=()
as strides=None
The former has changed to have the expected meaning of setting
numpy.ndarray.strides
to ()
, while the latter continues to result in
strides being chosen automatically.
(gh-15882)
The C-level casts from strings were simplified. This changed also fixes
string to datetime and timedelta casts to behave correctly (i.e. like
Python casts using string_arr.astype("M8")
while previously the cast
would behave like string_arr.astype(np.int_).astype("M8")
. This only
affects code using low-level C-API to do manual casts (not full array
casts) of single scalar values or using e.g. PyArray_GetCastFunc
, and
should thus not affect the vast majority of users.
(gh-16068)
dtype=object
for ragged inputCalling np.array([[1, [1, 2, 3]])
will issue a DeprecationWarning
as
per NEP 34. Users should
explicitly use dtype=object
to avoid the warning.
(gh-15119)
shape=0
to factory functions in numpy.rec
is deprecated0
is treated as a special case and is aliased to None
in the
functions:
numpy.core.records.fromarrays
numpy.core.records.fromrecords
numpy.core.records.fromstring
numpy.core.records.fromfile
In future, 0
will not be special cased, and will be treated as an
array length like any other integer.
(gh-15217)
The following C-API functions are probably unused and have been
deprecated:
PyArray_GetArrayParamsFromObject
PyUFunc_GenericFunction
PyUFunc_SetUsesArraysAsData
In most cases PyArray_GetArrayParamsFromObject
should be replaced by
converting to an array, while PyUFunc_GenericFunction
can be replaced
with PyObject_Call
(see documentation for details).
(gh-15427)
The super classes of scalar types, such as np.integer
, np.generic
,
or np.inexact
will now give a deprecation warning when converted to a
dtype (or used in a dtype keyword argument). The reason for this is that
np.integer
is converted to np.int_
, while it would be expected to
represent any integer (e.g. also int8
, int16
, etc. For example,
dtype=np.floating
is currently identical to dtype=np.float64
, even
though also np.float32
is a subclass of np.floating
.
(gh-15534)
round
for np.complexfloating
scalarsOutput of the __round__
dunder method and consequently the Python
built-in round
has been deprecated on complex scalars. This does not
affect np.round
.
(gh-15840)
numpy.ndarray.tostring()
is deprecated in favor of tobytes()
~numpy.ndarray.tobytes
has existed since the 1.9 release, but until
this release ~numpy.ndarray.tostring
emitted no warning. The change to
emit a warning brings NumPy in line with the builtin array.array
methods of the same name.
(gh-15867)
const
dimensions in API functionsThe following functions now accept a constant array of npy_intp
:
PyArray_BroadcastToShape
PyArray_IntTupleFromIntp
PyArray_OverflowMultiplyList
Previously the caller would have to cast away the const-ness to call
these functions.
(gh-15251)
UFuncGenericFunction
now expects pointers to const dimension
and
strides
as arguments. This means inner loops may no longer modify
either dimension
or strides
. This change leads to an
incompatible-pointer-types
warning forcing users to either ignore the
compiler warnings or to const qualify their own loop signatures.
(gh-15355)
numpy.frompyfunc
now accepts an identity argumentThis allows the `numpy.ufunc.identity
{.interpreted-text
role="attr"}[ attribute to be set on the resulting ufunc, meaning it can
be used for empty and multi-dimensional calls to
:meth:]{.title-ref}[numpy.ufunc.reduce]{.title-ref}`.
(gh-8255)
np.str_
scalars now support the buffer protocolnp.str_
arrays are always stored as UCS4, so the corresponding scalars
now expose this through the buffer interface, meaning
memoryview(np.str_('test'))
now works.
(gh-15385)
subok
option for numpy.copy
A new kwarg, subok
, was added to numpy.copy
to allow users to toggle
the behavior of numpy.copy
with respect to array subclasses. The
default value is False
which is consistent with the behavior of
numpy.copy
for previous numpy versions. To create a copy that
preserves an array subclass with numpy.copy
, call
np.copy(arr, subok=True)
. This addition better documents that the
default behavior of numpy.copy
differs from the numpy.ndarray.copy
method which respects array subclasses by default.
(gh-15685)
numpy.linalg.multi_dot
now accepts an out
argumentout
can be used to avoid creating unnecessary copies of the final
product computed by numpy.linalg.multidot
.
(gh-15715)
keepdims
parameter for numpy.count_nonzero
The parameter keepdims
was added to numpy.count_nonzero
. The
parameter has the same meaning as it does in reduction functions such as
numpy.sum
or numpy.mean
.
(gh-15870)
equal_nan
parameter for numpy.array_equal
The keyword argument equal_nan
was added to numpy.array_equal
.
equal_nan
is a boolean value that toggles whether or not nan
values
are considered equal in comparison (default is False
). This matches
API used in related functions such as numpy.isclose
and
numpy.allclose
.
(gh-16128)
Replace npy_cpu_supports
which was a gcc specific mechanism to test
support of AVX with more general functions npy_cpu_init
and
npy_cpu_have
, and expose the results via a NPY_CPU_HAVE
c-macro as
well as a python-level __cpu_features__
dictionary.
(gh-13421)
Use 64-bit integer size on 64-bit platforms in the fallback LAPACK
library, which is used when the system has no LAPACK installed, allowing
it to deal with linear algebra for large arrays.
(gh-15218)
np.exp
when input is np.float64
Use AVX512 intrinsic to implement np.exp
when input is np.float64
,
which can improve the performance of np.exp
with np.float64
input
5-7x faster than before. The _multiarray_umath.so
module has grown
about 63 KB on linux64.
(gh-15648)
On Linux NumPy has previously added support for madavise hugepages which
can improve performance for very large arrays. Unfortunately, on older
Kernel versions this led to peformance regressions, thus by default the
support has been disabled on kernels before version 4.6. To override the
default, you can use the environment variable:
NUMPY_MADVISE_HUGEPAGE=0
or set it to 1 to force enabling support. Note that this only makes a
difference if the operating system is set up to use madvise transparent
hugepage.
(gh-15769)
numpy.einsum
accepts NumPy int64
type in subscript listThere is no longer a type error thrown when numpy.einsum
is passed a
NumPy int64
array as its subscript list.
(gh-16080)
np.logaddexp2.identity
changed to -inf
The ufunc ~numpy.logaddexp2
now has an identity of -inf
, allowing it
to be called on empty sequences. This matches the identity of
~numpy.logaddexp
.
(gh-16102)
__array__
A code path and test have been in the code since NumPy 0.4 for a
two-argument variant of __array__(dtype=None, context=None)
. It was
activated when calling ufunc(op)
or ufunc.reduce(op)
if
op.__array__
existed. However that variant is not documented, and it
is not clear what the intention was for its use. It has been removed.
(gh-15118)
numpy.random._bit_generator
moved to numpy.random.bit_generator
In order to expose numpy.random.BitGenerator
and
numpy.random.SeedSequence
to Cython, the _bitgenerator
module is now
public as numpy.random.bit_generator
pxd
filec_distributions.pxd
provides access to the c functions behind many of
the random distributions from Cython, making it convenient to use and
extend them.
(gh-15463)
eigh
and cholesky
methods in numpy.random.multivariate_normal
Previously, when passing method='eigh'
or method='cholesky'
,
numpy.random.multivariate_normal
produced samples from the wrong
distribution. This is now fixed.
(gh-15872)
MT19937.jumped
This fix changes the stream produced from jumped MT19937 generators. It
does not affect the stream produced using RandomState
or MT19937
that are directly seeded.
The translation of the jumping code for the MT19937 contained a reversed
loop ordering. MT19937.jumped
matches the Makoto Matsumoto's original
implementation of the Horner and Sliding Window jump methods.
(gh-16153)
4402625434f1a72bbb92eb2f778746de numpy-1.19.0rc2-cp36-cp36m-macosx_10_9_x86_64.whl
00dc464c6ea41b0455bfa2ac10743ff4 numpy-1.19.0rc2-cp36-cp36m-manylinux1_i686.whl
79329dbf55bbfd2ab0fa939121ccc78a numpy-1.19.0rc2-cp36-cp36m-manylinux1_x86_64.whl
5e6da57e789798f724347ef60f3c92a6 numpy-1.19.0rc2-cp36-cp36m-manylinux2010_i686.whl
bdae85b54774be5b653dec764566506f numpy-1.19.0rc2-cp36-cp36m-manylinux2010_x86_64.whl
5584ce67eb578fb27821577a5490dd50 numpy-1.19.0rc2-cp36-cp36m-manylinux2014_aarch64.whl
a59cdc4f173a0e03fea4b89c71151d2a numpy-1.19.0rc2-cp36-cp36m-win32.whl
04be1471f39e3283a77988804fc839fe numpy-1.19.0rc2-cp36-cp36m-win_amd64.whl
5fb6f812e8c581b1a65ef69bccdc1bb4 numpy-1.19.0rc2-cp37-cp37m-macosx_10_9_x86_64.whl
14d63aba4c1aa6ca7a757d8be68cd696 numpy-1.19.0rc2-cp37-cp37m-manylinux1_i686.whl
e253be865c122d87908218fe660862c3 numpy-1.19.0rc2-cp37-cp37m-manylinux1_x86_64.whl
78576e10b9bf48837aae9d6b7a231219 numpy-1.19.0rc2-cp37-cp37m-manylinux2010_i686.whl
790ca051a69e393ede6952c0588a4ccb numpy-1.19.0rc2-cp37-cp37m-manylinux2010_x86_64.whl
70ff604feed46336810fc8b539d0ab79 numpy-1.19.0rc2-cp37-cp37m-manylinux2014_aarch64.whl
925bd569daf0c2d1ed441ba1022c74d8 numpy-1.19.0rc2-cp37-cp37m-win32.whl
773f795f1c9ce00beed2646b4e496155 numpy-1.19.0rc2-cp37-cp37m-win_amd64.whl
265faec32b8bd19ad46d71f0fdc23eba numpy-1.19.0rc2-cp38-cp38-macosx_10_9_x86_64.whl
34d0ed75f82bced398cf8d42f40faf2f numpy-1.19.0rc2-cp38-cp38-manylinux1_i686.whl
6c4e77576987f13d894cc3b763da3372 numpy-1.19.0rc2-cp38-cp38-manylinux1_x86_64.whl
be31ca0f2dbef9450dfd737fdf9ea297 numpy-1.19.0rc2-cp38-cp38-manylinux2010_i686.whl
d7a19658651a4290c289b7736a3d0471 numpy-1.19.0rc2-cp38-cp38-manylinux2010_x86_64.whl
118e4b75b557b29ea284cb1f97ab76ee numpy-1.19.0rc2-cp38-cp38-manylinux2014_aarch64.whl
8b1325b84fa1dea25137595bcc3fba4d numpy-1.19.0rc2-cp38-cp38-win32.whl
022defe479409b7b5604c38df63ba330 numpy-1.19.0rc2-cp38-cp38-win_amd64.whl
1ba5b606b95e0fee55ec99da3b15fae5 numpy-1.19.0rc2-pp36-pypy36_pp73-manylinux2010_x86_64.whl
b24c70ce8bed9e03ef08730127f4d30b numpy-1.19.0rc2.tar.gz
93e7419f48a0faa2ba91531df8f2f2a6 numpy-1.19.0rc2.zip
6068db7fc6e34aed8a2d4ea4041fbeff3485a05452524d307c70da708ea40d63 numpy-1.19.0rc2-cp36-cp36m-macosx_10_9_x86_64.whl
e1c4e32318501ec8e8fa3dead802dd1b913dcf8eddeb2b0370f35b58c71d6018 numpy-1.19.0rc2-cp36-cp36m-manylinux1_i686.whl
01e17a9c1fdc7b97c75ad926f816694397be76251222a6f6cb50bbe3218cf3e5 numpy-1.19.0rc2-cp36-cp36m-manylinux1_x86_64.whl
9e8bf8bb69ef268eaab6483b354039aabb737c3aaab4ad526e4ad7c95a87bd3c numpy-1.19.0rc2-cp36-cp36m-manylinux2010_i686.whl
c49cc2b4e1b40bd836b2077d1cfee738577d2a411268eccace4f01dc22ef90ed numpy-1.19.0rc2-cp36-cp36m-manylinux2010_x86_64.whl
3eb013e193de97ec196441f6bdf9a1bea84dfbfb2421d5cccfdbba3aa2d60ec0 numpy-1.19.0rc2-cp36-cp36m-manylinux2014_aarch64.whl
307da8faeb1e84bbee082004c06aa41510e52321025d4a54a16ca48f8329ca4f numpy-1.19.0rc2-cp36-cp36m-win32.whl
7c716527392f34c217f18672aac79e88f4747e2717bd0c0c99755b197a5f5197 numpy-1.19.0rc2-cp36-cp36m-win_amd64.whl
c2f32979427df01cda8834af714dfacd06dce92f6c9275482a2e2932c67e67a1 numpy-1.19.0rc2-cp37-cp37m-macosx_10_9_x86_64.whl
d9b07673ac07cd02b1ba4d7eb920cd762d1559cc40af63d8e2b16774fdc3aa36 numpy-1.19.0rc2-cp37-cp37m-manylinux1_i686.whl
5e5b36b986a28d6651f6c8ebed084290e30833f50a7e0fe04f916b59d5113863 numpy-1.19.0rc2-cp37-cp37m-manylinux1_x86_64.whl
707be2715ca33f98335fdc84e3a79de4d85c7dd6b24aff6a57e45bf393205eb5 numpy-1.19.0rc2-cp37-cp37m-manylinux2010_i686.whl
cf6a8eb39bd191584de2f47dcc40155ffc902a32cff2a985ac58d93c035b306a numpy-1.19.0rc2-cp37-cp37m-manylinux2010_x86_64.whl
ec6c41348e05e2bee6b34cedb5bb38f7e53dee7e0791a4a63e1425dbee5ef326 numpy-1.19.0rc2-cp37-cp37m-manylinux2014_aarch64.whl
45c0a742198566b46479231cb4f189f69c4fd8fe1331f1217f9c58496fe52fc2 numpy-1.19.0rc2-cp37-cp37m-win32.whl
32073a47eeb37172f23f4f432efb2068c6b13b04d3eb4f0558056430ee3f32c5 numpy-1.19.0rc2-cp37-cp37m-win_amd64.whl
7526a8dbc68d730785a57ec18541b194d4ac7402843addb0d706174668f5be16 numpy-1.19.0rc2-cp38-cp38-macosx_10_9_x86_64.whl
b82511ae4d8e3dbf727c91bf6c761f882750428e888e0c1795b57f3c4b8cfc1e numpy-1.19.0rc2-cp38-cp38-manylinux1_i686.whl
159741a29c33b5e2829e4fcdcd712c35651f1b7571672002453f27fe438459d4 numpy-1.19.0rc2-cp38-cp38-manylinux1_x86_64.whl
e9ad332f8ff6f53dba38f39f3832a2f9fd4627039bc3a2baddb699fdf445adb1 numpy-1.19.0rc2-cp38-cp38-manylinux2010_i686.whl
93bb0c1f9c69e5ce97e8d6b45c472a050bfa1e433c4c70c4568718c60cc7c306 numpy-1.19.0rc2-cp38-cp38-manylinux2010_x86_64.whl
53564bfd09dda34cd74d11cbc1aad88b7fd2ad8b1d6eae6b4274ac789f30d6c0 numpy-1.19.0rc2-cp38-cp38-manylinux2014_aarch64.whl
dd21db931bdeb5d6ecffe36673bbaee4510f7e79b9afdbbdc2bf9c157ec8734c numpy-1.19.0rc2-cp38-cp38-win32.whl
612878ef8025af60c9d43556e45d93fa07d2e6a960e252a475575d3018e361cc numpy-1.19.0rc2-cp38-cp38-win_amd64.whl
e20452ad415c56cec51f52080adb4eccc4891ee86cf6b194e2434d09d42a183d numpy-1.19.0rc2-pp36-pypy36_pp73-manylinux2010_x86_64.whl
39814c52f65c89385028da97da574d5e2a74de5c52d6273cae755982c91597bc numpy-1.19.0rc2.tar.gz
a233044f7100e9f2100a4fc0f82021c827f7a82624b649059c5dd92cec4cee17 numpy-1.19.0rc2.zip
This NumPy release is marked by the removal of much technical debt:
support for Python 2 has been removed, many deprecations have been
expired, and documentation has been improved. The polishing of the
random module continues apace with bug fixes and better usability from
Cython.
The Python versions supported for this release are 3.6-3.8. Downstream
developers should use Cython >= 0.29.16 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid problems on the Skylake architecture.
Code compatibility with Python versions < 3.5 (including Python 2)
was dropped from both the python and C code. The shims in
numpy.compat
will remain to support third-party packages, but they
may be deprecated in a future release.
(gh-15233)
numpy.insert
and numpy.delete
can no longer be passed an axis on 0d arraysThis concludes a deprecation from 1.9, where when an axis
argument was
passed to a call to ~numpy.insert
and ~numpy.delete
on a 0d array,
the axis
and obj
argument and indices would be completely ignored.
In these cases, insert(arr, "nonsense", 42, axis=0)
would actually
overwrite the entire array, while delete(arr, "nonsense", axis=0)
would be arr.copy()
Now passing axis
on a 0d array raises ~numpy.AxisError
.
(gh-15802)
numpy.delete
no longer ignores out-of-bounds indicesThis concludes deprecations from 1.8 and 1.9, where np.delete
would
ignore both negative and out-of-bounds items in a sequence of indices.
This was at odds with its behavior when passed a single index.
Now out-of-bounds items throw IndexError
, and negative items index
from the end.
(gh-15804)
numpy.insert
and numpy.delete
no longer accept non-integral indicesThis concludes a deprecation from 1.9, where sequences of non-integers
indices were allowed and cast to integers. Now passing sequences of
non-integral indices raises IndexError
, just like it does when passing
a single non-integral scalar.
(gh-15805)
numpy.delete
no longer casts boolean indices to integersThis concludes a deprecation from 1.8, where np.delete
would cast
boolean arrays and scalars passed as an index argument into integer
indices. The behavior now is to treat boolean arrays as a mask, and to
raise an error on boolean scalars.
(gh-15815)
numpy.random.Generator.dirichlet
A bug in the generation of random variates for the Dirichlet
distribution with small 'alpha' values was fixed by using a different
algorithm when max(alpha) < 0.1
. Because of the change, the stream of
variates generated by dirichlet
in this case will be different from
previous releases.
(gh-14924)
PyArray_ConvertToCommonType
The promotion of mixed scalars and arrays in
PyArray_ConvertToCommonType
has been changed to adhere to those used
by np.result_type
. This means that input such as
(1000, np.array([1], dtype=np.uint8)))
will now return uint16
dtypes. In most cases the behaviour is unchanged. Note that the use of
this C-API function is generally discouraged. This also fixes
np.choose
to behave the same way as the rest of NumPy in this respect.
(gh-14933)
The fasttake and fastputmask slots are now never used and must always be
set to NULL. This will result in no change in behaviour. However, if a
user dtype should set one of these a DeprecationWarning will be given.
(gh-14942)
np.ediff1d
casting behaviour with to_end
and to_begin
np.ediff1d
now uses the "same_kind"
casting rule for its additional
to_end
and to_begin
arguments. This ensures type safety except when
the input array has a smaller integer type than to_begin
or to_end
.
In rare cases, the behaviour will be more strict than it was previously
in 1.16 and 1.17. This is necessary to solve issues with floating point
NaN.
(gh-14981)
Objects with len(obj) == 0
which implement an "array-like"
interface, meaning an object implementing obj.__array__()
,
obj.__array_interface__
, obj.__array_struct__
, or the python buffer
interface and which are also sequences (i.e. Pandas objects) will now
always retain there shape correctly when converted to an array. If such
an object has a shape of (0, 1)
previously, it could be converted into
an array of shape (0,)
(losing all dimensions after the first 0).
(gh-14995)
multiarray.int_asbuffer
As part of the continued removal of Python 2 compatibility,
multiarray.int_asbuffer
was removed. On Python 3, it threw a
NotImplementedError
and was unused internally. It is expected that
there are no downstream use cases for this method with Python 3.
(gh-15229)
numpy.distutils.compat
has been removedThis module contained only the function get_exception()
, which was
used as:
try:
...
except Exception:
e = get_exception()
Its purpose was to handle the change in syntax introduced in Python 2.6,
from except Exception, e:
to except Exception as e:
, meaning it was
only necessary for codebases supporting Python 2.5 and older.
(gh-15255)
issubdtype
no longer interprets float
as np.floating
numpy.issubdtype
had a FutureWarning since NumPy 1.14 which has
expired now. This means that certain input where the second argument was
neither a datatype nor a NumPy scalar type (such as a string or a python
type like int
or float
) will now be consistent with passing in
np.dtype(arg2).type
. This makes the result consistent with
expectations and leads to a false result in some cases which previously
returned true.
(gh-15773)
round
on scalars to be consistent with PythonOutput of the __round__
dunder method and consequently the Python
built-in round
has been changed to be a Python int
to be consistent
with calling it on Python float
objects when called with no arguments.
Previously, it would return a scalar of the np.dtype
that was passed
in.
(gh-15840)
numpy.ndarray
constructor no longer interprets strides=()
as strides=None
The former has changed to have the expected meaning of setting
numpy.ndarray.strides
to ()
, while the latter continues to result in
strides being chosen automatically.
(gh-15882)
The C-level casts from strings were simplified. This changed also fixes
string to datetime and timedelta casts to behave correctly (i.e. like
Python casts using string_arr.astype("M8")
while previously the cast
would behave like string_arr.astype(np.int_).astype("M8")
. This only
affects code using low-level C-API to do manual casts (not full array
casts) of single scalar values or using e.g. PyArray_GetCastFunc
, and
should thus not affect the vast majority of users.
(gh-16068)
dtype=object
for ragged inputCalling np.array([[1, [1, 2, 3]])
will issue a DeprecationWarning
as
per NEP 34. Users should
explicitly use dtype=object
to avoid the warning.
(gh-15119)
shape=0
to factory functions in numpy.rec
is deprecated0
is treated as a special case and is aliased to None
in the
functions:
numpy.core.records.fromarrays
numpy.core.records.fromrecords
numpy.core.records.fromstring
numpy.core.records.fromfile
In future, 0
will not be special cased, and will be treated as an
array length like any other integer.
(gh-15217)
The following C-API functions are probably unused and have been
deprecated:
PyArray_GetArrayParamsFromObject
PyUFunc_GenericFunction
PyUFunc_SetUsesArraysAsData
In most cases PyArray_GetArrayParamsFromObject
should be replaced by
converting to an array, while PyUFunc_GenericFunction
can be replaced
with PyObject_Call
(see documentation for details).
(gh-15427)
The super classes of scalar types, such as np.integer
, np.generic
,
or np.inexact
will now give a deprecation warning when converted to a
dtype (or used in a dtype keyword argument). The reason for this is that
np.integer
is converted to np.int_
, while it would be expected to
represent any integer (e.g. also int8
, int16
, etc. For example,
dtype=np.floating
is currently identical to dtype=np.float64
, even
though also np.float32
is a subclass of np.floating
.
(gh-15534)
round
for np.complexfloating
scalarsOutput of the __round__
dunder method and consequently the Python
built-in round
has been deprecated on complex scalars. This does not
affect np.round
.
(gh-15840)
numpy.ndarray.tostring()
is deprecated in favor of tobytes()
~numpy.ndarray.tobytes
has existed since the 1.9 release, but until
this release ~numpy.ndarray.tostring
emitted no warning. The change to
emit a warning brings NumPy in line with the builtin array.array
methods of the same name.
(gh-15867)
const
dimensions in API functionsThe following functions now accept a constant array of npy_intp
:
PyArray_BroadcastToShape
PyArray_IntTupleFromIntp
PyArray_OverflowMultiplyList
Previously the caller would have to cast away the const-ness to call
these functions.
(gh-15251)
UFuncGenericFunction
now expects pointers to const dimension
and
strides
as arguments. This means inner loops may no longer modify
either dimension
or strides
. This change leads to an
incompatible-pointer-types
warning forcing users to either ignore the
compiler warnings or to const qualify their own loop signatures.
(gh-15355)
numpy.frompyfunc
now accepts an identity argumentThis allows the `numpy.ufunc.identity
{.interpreted-text
role="attr"}[ attribute to be set on the resulting ufunc, meaning it can
be used for empty and multi-dimensional calls to
:meth:]{.title-ref}[numpy.ufunc.reduce]{.title-ref}`.
(gh-8255)
np.str_
scalars now support the buffer protocolnp.str_
arrays are always stored as UCS4, so the corresponding scalars
now expose this through the buffer interface, meaning
memoryview(np.str_('test'))
now works.
(gh-15385)
subok
option for numpy.copy
A new kwarg, subok
, was added to numpy.copy
to allow users to toggle
the behavior of numpy.copy
with respect to array subclasses. The
default value is False
which is consistent with the behavior of
numpy.copy
for previous numpy versions. To create a copy that
preserves an array subclass with numpy.copy
, call
np.copy(arr, subok=True)
. This addition better documents that the
default behavior of numpy.copy
differs from the numpy.ndarray.copy
method which respects array subclasses by default.
(gh-15685)
numpy.linalg.multi_dot
now accepts an out
argumentout
can be used to avoid creating unnecessary copies of the final
product computed by numpy.linalg.multidot
.
(gh-15715)
keepdims
parameter for numpy.count_nonzero
The parameter keepdims
was added to numpy.count_nonzero
. The
parameter has the same meaning as it does in reduction functions such as
numpy.sum
or numpy.mean
.
(gh-15870)
equal_nan
parameter for numpy.array_equal
The keyword argument equal_nan
was added to numpy.array_equal
.
equal_nan
is a boolean value that toggles whether or not nan
values
are considered equal in comparison (default is False
). This matches
API used in related functions such as numpy.isclose
and
numpy.allclose
.
(gh-16128)
Replace npy_cpu_supports
which was a gcc specific mechanism to test
support of AVX with more general functions npy_cpu_init
and
npy_cpu_have
, and expose the results via a NPY_CPU_HAVE
c-macro as
well as a python-level __cpu_features__
dictionary.
(gh-13421)
Use 64-bit integer size on 64-bit platforms in the fallback LAPACK
library, which is used when the system has no LAPACK installed, allowing
it to deal with linear algebra for large arrays.
(gh-15218)
np.exp
when input is np.float64
Use AVX512 intrinsic to implement np.exp
when input is np.float64
,
which can improve the performance of np.exp
with np.float64
input
5-7x faster than before. The _multiarray_umath.so
module has grown
about 63 KB on linux64.
(gh-15648)
On Linux NumPy has previously added support for madavise hugepages which
can improve performance for very large arrays. Unfortunately, on older
Kernel versions this led to peformance regressions, thus by default the
support has been disabled on kernels before version 4.6. To override the
default, you can use the environment variable:
NUMPY_MADVISE_HUGEPAGE=0
or set it to 1 to force enabling support. Note that this only makes a
difference if the operating system is set up to use madvise transparent
hugepage.
(gh-15769)
numpy.einsum
accepts NumPy int64
type in subscript listThere is no longer a type error thrown when numpy.einsum
is passed a
NumPy int64
array as its subscript list.
(gh-16080)
np.logaddexp2.identity
changed to -inf
The ufunc ~numpy.logaddexp2
now has an identity of -inf
, allowing it
to be called on empty sequences. This matches the identity of
~numpy.logaddexp
.
(gh-16102)
__array__
A code path and test have been in the code since NumPy 0.4 for a
two-argument variant of __array__(dtype=None, context=None)
. It was
activated when calling ufunc(op)
or ufunc.reduce(op)
if
op.__array__
existed. However that variant is not documented, and it
is not clear what the intention was for its use. It has been removed.
(gh-15118)
numpy.random._bit_generator
moved to numpy.random.bit_generator
In order to expose numpy.random.BitGenerator
and
numpy.random.SeedSequence
to Cython, the _bitgenerator
module is now
public as numpy.random.bit_generator
pxd
filec_distributions.pxd
provides access to the c functions behind many of
the random distributions from Cython, making it convenient to use and
extend them.
(gh-15463)
eigh
and cholesky
methods in numpy.random.multivariate_normal
Previously, when passing method='eigh'
or method='cholesky'
,
numpy.random.multivariate_normal
produced samples from the wrong
distribution. This is now fixed.
(gh-15872)
MT19937.jumped
This fix changes the stream produced from jumped MT19937 generators. It
does not affect the stream produced using RandomState
or MT19937
that are directly seeded.
The translation of the jumping code for the MT19937 contained a reversed
loop ordering. MT19937.jumped
matches the Makoto Matsumoto's original
implementation of the Horner and Sliding Window jump methods.
(gh-16153)
dac784fdc5f86f6b4daabb8a3edb59ef numpy-1.19.0rc1-cp36-cp36m-macosx_10_9_x86_64.whl
40df9787a18b84fbb7ab06de9e557abd numpy-1.19.0rc1-cp36-cp36m-manylinux1_i686.whl
f54d2c826b31469e1bddf271e8ebbbfa numpy-1.19.0rc1-cp36-cp36m-manylinux1_x86_64.whl
11da401f740d8fed948ab84f92b52490 numpy-1.19.0rc1-cp36-cp36m-manylinux2010_i686.whl
3a49ddd9cc062896b352d9914213d6c8 numpy-1.19.0rc1-cp36-cp36m-manylinux2010_x86_64.whl
426c0c9859f7384781be7fbfa1fbca28 numpy-1.19.0rc1-cp36-cp36m-manylinux2014_aarch64.whl
5e7c8d718b3e867a8c063bd18addde3f numpy-1.19.0rc1-cp36-cp36m-win32.whl
5dfdf8b5dea6ac218a93038dc1eb5b8b numpy-1.19.0rc1-cp36-cp36m-win_amd64.whl
10575aa075e31e1f190a802e8c784bd5 numpy-1.19.0rc1-cp37-cp37m-macosx_10_9_x86_64.whl
1cf8fa399117e8d95ef9ca8847451362 numpy-1.19.0rc1-cp37-cp37m-manylinux1_i686.whl
c832ede9b1272d32cb282ca7f951b084 numpy-1.19.0rc1-cp37-cp37m-manylinux1_x86_64.whl
3798e81e08e02c9683b03245ef181fe0 numpy-1.19.0rc1-cp37-cp37m-manylinux2010_i686.whl
fea16821dabc6563ff1475eadf18ecbb numpy-1.19.0rc1-cp37-cp37m-manylinux2010_x86_64.whl
040b481a6ba7c613f246dac8ebc5c44c numpy-1.19.0rc1-cp37-cp37m-manylinux2014_aarch64.whl
96698d2aa93adcc16296fa40f094bbc1 numpy-1.19.0rc1-cp37-cp37m-win32.whl
f930010f054f835d3818a2929ba66746 numpy-1.19.0rc1-cp37-cp37m-win_amd64.whl
1dc7545c2c53a95ea2523d98e6b7047e numpy-1.19.0rc1-cp38-cp38-macosx_10_9_x86_64.whl
d9f9d3653f4a5f58c0b4fa391bbeabbe numpy-1.19.0rc1-cp38-cp38-manylinux1_i686.whl
a89277714025de276a6c2916df470372 numpy-1.19.0rc1-cp38-cp38-manylinux1_x86_64.whl
894196d9ce2e1620a8fbc5ed95543580 numpy-1.19.0rc1-cp38-cp38-manylinux2010_i686.whl
071173ca8afca1b3fbcfc926a56ffd7f numpy-1.19.0rc1-cp38-cp38-manylinux2010_x86_64.whl
4180d5cda1e44242e8ed5b3c8b379d88 numpy-1.19.0rc1-cp38-cp38-manylinux2014_aarch64.whl
17c1867c83b2f07621d064145a255fc1 numpy-1.19.0rc1-cp38-cp38-win32.whl
b32c7bfc056895eb78b6129045f49523 numpy-1.19.0rc1-cp38-cp38-win_amd64.whl
704bc03983673b18017e6b461d55a8c8 numpy-1.19.0rc1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
fd6765ceb2074658eb40641de9ad596f numpy-1.19.0rc1.tar.gz
cc786052918361cb08f885e3e8c257fe numpy-1.19.0rc1.zip
361c84cdf8e10a27d1ce7bb0404284eed2f704fb10ebbdb714fe5a51ef4f2765 numpy-1.19.0rc1-cp36-cp36m-macosx_10_9_x86_64.whl
de874f2537e4e604c1db5905c4728b6b715c66a85bc71b5bc1b236973dc7610a numpy-1.19.0rc1-cp36-cp36m-manylinux1_i686.whl
8c4be83b9f253701ff865b6a9de26bbb67a3104486123347a3629101d3268a43 numpy-1.19.0rc1-cp36-cp36m-manylinux1_x86_64.whl
f6fe5dd6526fa6c0083fb5218a903dc9d9ea02df66996cd3be8c44c3b97894d5 numpy-1.19.0rc1-cp36-cp36m-manylinux2010_i686.whl
96578b9000e8ca35b83e96237d617345c4ac7bf8816cb950ddf76235b3b7306c numpy-1.19.0rc1-cp36-cp36m-manylinux2010_x86_64.whl
8ac99d78e3ebc41b0dccf024a8dd36057abfa4dfcf3875259abf09da28e89fd2 numpy-1.19.0rc1-cp36-cp36m-manylinux2014_aarch64.whl
fbd9dbb96fa22ee2f2cfad5311563a9df4528d3ac70f7635a9da0c7424ba4459 numpy-1.19.0rc1-cp36-cp36m-win32.whl
c995c832ddf4ce88b6383ce8c9160e86d614141412c0c874b6df87f680783528 numpy-1.19.0rc1-cp36-cp36m-win_amd64.whl
1ae709f648755ce757ef896fb110c52cbc76bc787a1243ad9b1262be3cc01e64 numpy-1.19.0rc1-cp37-cp37m-macosx_10_9_x86_64.whl
0028da01578ddb0d7372ccd168d7e7e3b04f25881db7f520bff6c50456aa7b02 numpy-1.19.0rc1-cp37-cp37m-manylinux1_i686.whl
82a905f8d920aa1dc2d642a1e76ed54f2baa3eb23e2216bc6cd41ae2b274dded numpy-1.19.0rc1-cp37-cp37m-manylinux1_x86_64.whl
09e0e60d6ed6417516a08f9767665ae459507dd1df63942e0c0bb69d93f05c0e numpy-1.19.0rc1-cp37-cp37m-manylinux2010_i686.whl
164d8d2a0de07c3aba089e7db0873930ac05252d985c8825f247bd79ddf3bd9d numpy-1.19.0rc1-cp37-cp37m-manylinux2010_x86_64.whl
1041dd124664263f1b9cde98028dd2d0f164a94b13a06183f27a7b7dd14767ad numpy-1.19.0rc1-cp37-cp37m-manylinux2014_aarch64.whl
d5833cb9cce627e960c87b75eb1878498cdf430155062f9423cee5617032284f numpy-1.19.0rc1-cp37-cp37m-win32.whl
59b4ace51c26d6f6698ebaee442a37d2f34415ad2d9c683e18bb462f50768697 numpy-1.19.0rc1-cp37-cp37m-win_amd64.whl
1d84d42be12fc7d3e9afc2e381136e6a4a0aa509183166b99079fd87afb8a6a6 numpy-1.19.0rc1-cp38-cp38-macosx_10_9_x86_64.whl
f45938abfa864e342f6719f05150f6458e018e22793a6fdf60e0ea4d4d15f53c numpy-1.19.0rc1-cp38-cp38-manylinux1_i686.whl
876a0d72f16e60c34678ff52535d0ccdfb5718ed0ebac4ed50187bd6e06c1bac numpy-1.19.0rc1-cp38-cp38-manylinux1_x86_64.whl
0bffe7f20aa96e3b16a99c5a38a6e3ebeeff9203c8000723f040c72746808c5b numpy-1.19.0rc1-cp38-cp38-manylinux2010_i686.whl
c39e84169f93899a15dbb7cbd3e68bd6bb31f56800658d966f89a2186eb4f929 numpy-1.19.0rc1-cp38-cp38-manylinux2010_x86_64.whl
5c1db3b05428c6c8397c2457063b16a03688f1d0531dac96afa46a0362a5f237 numpy-1.19.0rc1-cp38-cp38-manylinux2014_aarch64.whl
c58eedde4999735da1d95a4af266a43ba1c32fbc2021941bb5149ad58da1312d numpy-1.19.0rc1-cp38-cp38-win32.whl
705551bb2fb68a3ee1c5868a24d9e57670324a2c25530e3846b58f111ca3bada numpy-1.19.0rc1-cp38-cp38-win_amd64.whl
72a8744aa28d2f85629810aa13fe45b13992ca9566eade5fecb0e916d7df6c80 numpy-1.19.0rc1-pp36-pypy36_pp73-manylinux2010_x86_64.whl
c42b898277e1c2fdefa4361c6435e57311ad547f584039cbd935625701572d8e numpy-1.19.0rc1.tar.gz
1ae657a2390cbc1553df60cb2a5f69742761d0ad5957b0113c9c00bb06276a78 numpy-1.19.0rc1.zip
This is that last planned release in the 1.18.x series. It reverts the
bool("0")
behavior introduced in 1.18.3 and fixes a bug in
Generator.integers
. There is also improved help in the error message
emitted when numpy import fails due to a link to a new troubleshooting
section in the documentation that is now included.
The Python versions supported in this release are 3.5-3.8. Downstream
developers should use Cython >= 0.29.15 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid errors on the Skylake architecture.
A total of 4 people contributed to this release. People with a "+" by
their names contributed a patch for the first time.
A total of 6 pull requests were merged for this release.
Generator.integers(2**32)
always returned 0.1fe09153c9e6da5c9e73f3ed466da50c numpy-1.18.4-cp35-cp35m-macosx_10_9_intel.whl
707b0270ece3e9a16905e756884daa48 numpy-1.18.4-cp35-cp35m-manylinux1_i686.whl
47f90c71c3df80ace2b32d011ed1c240 numpy-1.18.4-cp35-cp35m-manylinux1_x86_64.whl
e0e7d9fd9f4c8cf077ba5cda69833d38 numpy-1.18.4-cp35-cp35m-win32.whl
06e844091463932a0d4da103951ffc2c numpy-1.18.4-cp35-cp35m-win_amd64.whl
32ce3d6d266f1fbfef4a2ff917053718 numpy-1.18.4-cp36-cp36m-macosx_10_9_x86_64.whl
f5d27cca8bf9dc8f603cad5255674bb8 numpy-1.18.4-cp36-cp36m-manylinux1_i686.whl
460bd10297e582f0e061194356990afb numpy-1.18.4-cp36-cp36m-manylinux1_x86_64.whl
160c62c881a5109f3e47813dd0079ab1 numpy-1.18.4-cp36-cp36m-win32.whl
03e2d39bfaaf27993b353b98c75f27cc numpy-1.18.4-cp36-cp36m-win_amd64.whl
672cb3889e7c9285ca260f8d15c2bc9f numpy-1.18.4-cp37-cp37m-macosx_10_9_x86_64.whl
eaebca109ce5346ec1626af476e88edb numpy-1.18.4-cp37-cp37m-manylinux1_i686.whl
bdf6d9bd169e5552284dd366c12e3759 numpy-1.18.4-cp37-cp37m-manylinux1_x86_64.whl
408f8eedcfb8bee6c0d8cb13f4665edd numpy-1.18.4-cp37-cp37m-win32.whl
2d2cc2ccd5c276bde6696856609dee9f numpy-1.18.4-cp37-cp37m-win_amd64.whl
5bdfaa2daf5afd8e6db8c202f58d5ef0 numpy-1.18.4-cp38-cp38-macosx_10_9_x86_64.whl
1aad5b0c4545e206aae7848853633885 numpy-1.18.4-cp38-cp38-manylinux1_i686.whl
f7e78dcee83fb851c97804d7fb987fdb numpy-1.18.4-cp38-cp38-manylinux1_x86_64.whl
91678301ec0d6e6c20bf7c71bc8665a5 numpy-1.18.4-cp38-cp38-win32.whl
916b27fca6fb780907033067cad175fe numpy-1.18.4-cp38-cp38-win_amd64.whl
70e6c294f8dffa8d630eda1b0d42ae4d numpy-1.18.4.tar.gz
37277c5cbe5a850513fbff5ffdad1caf numpy-1.18.4.zip
efdba339fffb0e80fcc19524e4fdbda2e2b5772ea46720c44eaac28096d60720 numpy-1.18.4-cp35-cp35m-macosx_10_9_intel.whl
2b573fcf6f9863ce746e4ad00ac18a948978bb3781cffa4305134d31801f3e26 numpy-1.18.4-cp35-cp35m-manylinux1_i686.whl
3f0dae97e1126f529ebb66f3c63514a0f72a177b90d56e4bce8a0b5def34627a numpy-1.18.4-cp35-cp35m-manylinux1_x86_64.whl
dccd380d8e025c867ddcb2f84b439722cf1f23f3a319381eac45fd077dee7170 numpy-1.18.4-cp35-cp35m-win32.whl
02ec9582808c4e48be4e93cd629c855e644882faf704bc2bd6bbf58c08a2a897 numpy-1.18.4-cp35-cp35m-win_amd64.whl
904b513ab8fbcbdb062bed1ce2f794ab20208a1b01ce9bd90776c6c7e7257032 numpy-1.18.4-cp36-cp36m-macosx_10_9_x86_64.whl
e22cd0f72fc931d6abc69dc7764484ee20c6a60b0d0fee9ce0426029b1c1bdae numpy-1.18.4-cp36-cp36m-manylinux1_i686.whl
2466fbcf23711ebc5daa61d28ced319a6159b260a18839993d871096d66b93f7 numpy-1.18.4-cp36-cp36m-manylinux1_x86_64.whl
00d7b54c025601e28f468953d065b9b121ddca7fff30bed7be082d3656dd798d numpy-1.18.4-cp36-cp36m-win32.whl
7d59f21e43bbfd9a10953a7e26b35b6849d888fc5a331fa84a2d9c37bd9fe2a2 numpy-1.18.4-cp36-cp36m-win_amd64.whl
efb7ac5572c9a57159cf92c508aad9f856f1cb8e8302d7fdb99061dbe52d712c numpy-1.18.4-cp37-cp37m-macosx_10_9_x86_64.whl
0e6f72f7bb08f2f350ed4408bb7acdc0daba637e73bce9f5ea2b207039f3af88 numpy-1.18.4-cp37-cp37m-manylinux1_i686.whl
9933b81fecbe935e6a7dc89cbd2b99fea1bf362f2790daf9422a7bb1dc3c3085 numpy-1.18.4-cp37-cp37m-manylinux1_x86_64.whl
96dd36f5cdde152fd6977d1bbc0f0561bccffecfde63cd397c8e6033eb66baba numpy-1.18.4-cp37-cp37m-win32.whl
57aea170fb23b1fd54fa537359d90d383d9bf5937ee54ae8045a723caa5e0961 numpy-1.18.4-cp37-cp37m-win_amd64.whl
ed722aefb0ebffd10b32e67f48e8ac4c5c4cf5d3a785024fdf0e9eb17529cd9d numpy-1.18.4-cp38-cp38-macosx_10_9_x86_64.whl
50fb72bcbc2cf11e066579cb53c4ca8ac0227abb512b6cbc1faa02d1595a2a5d numpy-1.18.4-cp38-cp38-manylinux1_i686.whl
709c2999b6bd36cdaf85cf888d8512da7433529f14a3689d6e37ab5242e7add5 numpy-1.18.4-cp38-cp38-manylinux1_x86_64.whl
f22273dd6a403ed870207b853a856ff6327d5cbce7a835dfa0645b3fc00273ec numpy-1.18.4-cp38-cp38-win32.whl
1be2e96314a66f5f1ce7764274327fd4fb9da58584eaff00b5a5221edefee7d6 numpy-1.18.4-cp38-cp38-win_amd64.whl
e0781ec6627e85f2a618478ee278893343fb8b40577b4c74b2ec15c7a5b8f698 numpy-1.18.4.tar.gz
bbcc85aaf4cd84ba057decaead058f43191cc0e30d6bc5d44fe336dc3d3f4509 numpy-1.18.4.zip
This release contains various bug/regression fixes.
The Python versions supported in this release are 3.5-3.8. Downstream
developers should use Cython >= 0.29.15 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid errors on the Skylake architecture.
method='eigh'
and method='cholesky'
options innumpy.random.multivariate_normal
. Those were producing samplesA total of 6 people contributed to this release. People with a "+" by
their names contributed a patch for the first time.
A total of 5 pull requests were merged for this release.
_generator.multinomial
._generator.dirichlet
6582c9a045ba92cb11a7062cfabba898 numpy-1.18.3-cp35-cp35m-macosx_10_9_intel.whl
f70d5c8d4f598653ff66f640487481ce numpy-1.18.3-cp35-cp35m-manylinux1_i686.whl
5c0f1a8c94d095efd21ab4b8ffeed921 numpy-1.18.3-cp35-cp35m-manylinux1_x86_64.whl
92cab35405fe3042e7aa8504d8669cd0 numpy-1.18.3-cp35-cp35m-win32.whl
8769b5434fd08fe67d912077082b91d7 numpy-1.18.3-cp35-cp35m-win_amd64.whl
2f1f330199d95bd8e709d0e4a0eec65e numpy-1.18.3-cp36-cp36m-macosx_10_9_x86_64.whl
19892d1f036da55f8841ef121478d554 numpy-1.18.3-cp36-cp36m-manylinux1_i686.whl
676c3dd16e9d80271c31ee5f9c3b8f20 numpy-1.18.3-cp36-cp36m-manylinux1_x86_64.whl
6484099fdb78f732a758286d2eb87632 numpy-1.18.3-cp36-cp36m-win32.whl
7d99a2a4ba819b75347468c8ed5e5a9e numpy-1.18.3-cp36-cp36m-win_amd64.whl
a5672f35136ea83dfa7960859a38d6e9 numpy-1.18.3-cp37-cp37m-macosx_10_9_x86_64.whl
5b36aaaeb4203b3d26c5dc801dbc66bd numpy-1.18.3-cp37-cp37m-manylinux1_i686.whl
afc4b2445d447f1a7c338026778bd34e numpy-1.18.3-cp37-cp37m-manylinux1_x86_64.whl
2ebc3ba9945d108df75319c359190516 numpy-1.18.3-cp37-cp37m-win32.whl
a78f661b1c7bd153c8399db90fba652c numpy-1.18.3-cp37-cp37m-win_amd64.whl
8f16d580559468b7cf23a71dc9945f39 numpy-1.18.3-cp38-cp38-macosx_10_9_x86_64.whl
5ec887ba38cd99775666f3493d82ea7c numpy-1.18.3-cp38-cp38-manylinux1_i686.whl
88ce81bc31dec4c14bf835dc466308ed numpy-1.18.3-cp38-cp38-manylinux1_x86_64.whl
5afe9a5f3c21299da599210ff5b76834 numpy-1.18.3-cp38-cp38-win32.whl
205364093300906654debbe3beb13359 numpy-1.18.3-cp38-cp38-win_amd64.whl
cd631c761f141d382b4e1b31c8232fc0 numpy-1.18.3.tar.gz
91314710fe9d29d80b6ccc9629e4532b numpy-1.18.3.zip
a6bc9432c2640b008d5f29bad737714eb3e14bb8854878eacf3d7955c4e91c36 numpy-1.18.3-cp35-cp35m-macosx_10_9_intel.whl
48e15612a8357393d176638c8f68a19273676877caea983f8baf188bad430379 numpy-1.18.3-cp35-cp35m-manylinux1_i686.whl
eb2286249ebfe8fcb5b425e5ec77e4736d53ee56d3ad296f8947f67150f495e3 numpy-1.18.3-cp35-cp35m-manylinux1_x86_64.whl
1e37626bcb8895c4b3873fcfd54e9bfc5ffec8d0f525651d6985fcc5c6b6003c numpy-1.18.3-cp35-cp35m-win32.whl
163c78c04f47f26ca1b21068cea25ed7c5ecafe5f5ab2ea4895656a750582b56 numpy-1.18.3-cp35-cp35m-win_amd64.whl
3d9e1554cd9b5999070c467b18e5ae3ebd7369f02706a8850816f576a954295f numpy-1.18.3-cp36-cp36m-macosx_10_9_x86_64.whl
40c24960cd5cec55222963f255858a1c47c6fa50a65a5b03fd7de75e3700eaaa numpy-1.18.3-cp36-cp36m-manylinux1_i686.whl
a551d8cc267c634774830086da42e4ba157fa41dd3b93982bc9501b284b0c689 numpy-1.18.3-cp36-cp36m-manylinux1_x86_64.whl
0aa2b318cf81eb1693fcfcbb8007e95e231d7e1aa24288137f3b19905736c3ee numpy-1.18.3-cp36-cp36m-win32.whl
a41f303b3f9157a31ce7203e3ca757a0c40c96669e72d9b6ee1bce8507638970 numpy-1.18.3-cp36-cp36m-win_amd64.whl
e607b8cdc2ae5d5a63cd1bec30a15b5ed583ac6a39f04b7ba0f03fcfbf29c05b numpy-1.18.3-cp37-cp37m-macosx_10_9_x86_64.whl
fdee7540d12519865b423af411bd60ddb513d2eb2cd921149b732854995bbf8b numpy-1.18.3-cp37-cp37m-manylinux1_i686.whl
6725d2797c65598778409aba8cd67077bb089d5b7d3d87c2719b206dc84ec05e numpy-1.18.3-cp37-cp37m-manylinux1_x86_64.whl
4847f0c993298b82fad809ea2916d857d0073dc17b0510fbbced663b3265929d numpy-1.18.3-cp37-cp37m-win32.whl
46f404314dbec78cb342904f9596f25f9b16e7cf304030f1339e553c8e77f51c numpy-1.18.3-cp37-cp37m-win_amd64.whl
264fd15590b3f02a1fbc095e7e1f37cdac698ff3829e12ffdcffdce3772f9d44 numpy-1.18.3-cp38-cp38-macosx_10_9_x86_64.whl
e94a39d5c40fffe7696009dbd11bc14a349b377e03a384ed011e03d698787dd3 numpy-1.18.3-cp38-cp38-manylinux1_i686.whl
a4305564e93f5c4584f6758149fd446df39fd1e0a8c89ca0deb3cce56106a027 numpy-1.18.3-cp38-cp38-manylinux1_x86_64.whl
99f0ba97e369f02a21bb95faa3a0de55991fd5f0ece2e30a9e2eaebeac238921 numpy-1.18.3-cp38-cp38-win32.whl
c60175d011a2e551a2f74c84e21e7c982489b96b6a5e4b030ecdeacf2914da68 numpy-1.18.3-cp38-cp38-win_amd64.whl
93ee59ec38f3bf8f9a42d5f4301f60e6825a4a6385a145f70badcd2bf2a11134 numpy-1.18.3.tar.gz
e46e2384209c91996d5ec16744234d1c906ab79a701ce1a26155c9ec890b8dc8 numpy-1.18.3.zip
This small elease contains a fix for a performance regression in
numpy/random and several bug/maintenance updates.
The Python versions supported in this release are 3.5-3.8. Downstream
developers should use Cython >= 0.29.15 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid errors on the Skylake architecture.
A total of 5 people contributed to this release. People with a "+" by
their names contributed a patch for the first time.
A total of 7 pull requests were merged for this release.
b9efe544f2bfbbd4e226c5639f22b1d2 numpy-1.18.2-cp35-cp35m-macosx_10_9_x86_64.whl
59c0bc09053c0029e829685dcb3dafa5 numpy-1.18.2-cp35-cp35m-manylinux1_i686.whl
1783f9194ceeabb236bd46ed6cb6ed60 numpy-1.18.2-cp35-cp35m-manylinux1_x86_64.whl
8a6fa57b509e6d9e194fb43b0ac5bbc7 numpy-1.18.2-cp35-cp35m-win32.whl
3167feeb5e30445ca7beed1d55b6d73a numpy-1.18.2-cp35-cp35m-win_amd64.whl
c193d593d3b8a46c610511a69c86f879 numpy-1.18.2-cp36-cp36m-macosx_10_9_x86_64.whl
f31c65b4699b12e73b36eb268931dbdc numpy-1.18.2-cp36-cp36m-manylinux1_i686.whl
f5b0613cacaaf2179528a36b75712d65 numpy-1.18.2-cp36-cp36m-manylinux1_x86_64.whl
77e40c0481f2c1608d344032038fa969 numpy-1.18.2-cp36-cp36m-win32.whl
2c402211d77a10025b047042d191839b numpy-1.18.2-cp36-cp36m-win_amd64.whl
3adec0f3cd5946ae7a0ab67790b2d8f1 numpy-1.18.2-cp37-cp37m-macosx_10_9_x86_64.whl
baea3b06dac41d5f6f1fbb7a62114656 numpy-1.18.2-cp37-cp37m-manylinux1_i686.whl
99b3c14bfc303c662b899d1a5ca4df6a numpy-1.18.2-cp37-cp37m-manylinux1_x86_64.whl
293066cca2b3772fa3ae204f6ff98ce7 numpy-1.18.2-cp37-cp37m-win32.whl
21f3cda116631da8823a621e90c30bbb numpy-1.18.2-cp37-cp37m-win_amd64.whl
47978cedd45ded509073025c1aa60506 numpy-1.18.2-cp38-cp38-macosx_10_9_x86_64.whl
4864078352c7faa69a8f9e98e48f7d8a numpy-1.18.2-cp38-cp38-manylinux1_i686.whl
c0111a5fce4aa57004366e9d5edc5644 numpy-1.18.2-cp38-cp38-manylinux1_x86_64.whl
7f8ca4e685e607f80ad002495b603436 numpy-1.18.2-cp38-cp38-win32.whl
e8e192005a0b8045928f0ac712762a6f numpy-1.18.2-cp38-cp38-win_amd64.whl
52601ac4cfbd513218bc088b74715098 numpy-1.18.2.tar.gz
511010c9fbd2516fe5a24aabcb76a56d numpy-1.18.2.zip
a1baa1dc8ecd88fb2d2a651671a84b9938461e8a8eed13e2f0a812a94084d1fa numpy-1.18.2-cp35-cp35m-macosx_10_9_x86_64.whl
a244f7af80dacf21054386539699ce29bcc64796ed9850c99a34b41305630286 numpy-1.18.2-cp35-cp35m-manylinux1_i686.whl
6fcc5a3990e269f86d388f165a089259893851437b904f422d301cdce4ff25c8 numpy-1.18.2-cp35-cp35m-manylinux1_x86_64.whl
b5ad0adb51b2dee7d0ee75a69e9871e2ddfb061c73ea8bc439376298141f77f5 numpy-1.18.2-cp35-cp35m-win32.whl
87902e5c03355335fc5992a74ba0247a70d937f326d852fc613b7f53516c0963 numpy-1.18.2-cp35-cp35m-win_amd64.whl
9ab21d1cb156a620d3999dd92f7d1c86824c622873841d6b080ca5495fa10fef numpy-1.18.2-cp36-cp36m-macosx_10_9_x86_64.whl
cdb3a70285e8220875e4d2bc394e49b4988bdb1298ffa4e0bd81b2f613be397c numpy-1.18.2-cp36-cp36m-manylinux1_i686.whl
6d205249a0293e62bbb3898c4c2e1ff8a22f98375a34775a259a0523111a8f6c numpy-1.18.2-cp36-cp36m-manylinux1_x86_64.whl
a35af656a7ba1d3decdd4fae5322b87277de8ac98b7d9da657d9e212ece76a61 numpy-1.18.2-cp36-cp36m-win32.whl
1598a6de323508cfeed6b7cd6c4efb43324f4692e20d1f76e1feec7f59013448 numpy-1.18.2-cp36-cp36m-win_amd64.whl
deb529c40c3f1e38d53d5ae6cd077c21f1d49e13afc7936f7f868455e16b64a0 numpy-1.18.2-cp37-cp37m-macosx_10_9_x86_64.whl
cd77d58fb2acf57c1d1ee2835567cd70e6f1835e32090538f17f8a3a99e5e34b numpy-1.18.2-cp37-cp37m-manylinux1_i686.whl
b1fe1a6f3a6f355f6c29789b5927f8bd4f134a4bd9a781099a7c4f66af8850f5 numpy-1.18.2-cp37-cp37m-manylinux1_x86_64.whl
2e40be731ad618cb4974d5ba60d373cdf4f1b8dcbf1dcf4d9dff5e212baf69c5 numpy-1.18.2-cp37-cp37m-win32.whl
4ba59db1fcc27ea31368af524dcf874d9277f21fd2e1f7f1e2e0c75ee61419ed numpy-1.18.2-cp37-cp37m-win_amd64.whl
59ca9c6592da581a03d42cc4e270732552243dc45e87248aa8d636d53812f6a5 numpy-1.18.2-cp38-cp38-macosx_10_9_x86_64.whl
1b0ece94018ae21163d1f651b527156e1f03943b986188dd81bc7e066eae9d1c numpy-1.18.2-cp38-cp38-manylinux1_i686.whl
82847f2765835c8e5308f136bc34018d09b49037ec23ecc42b246424c767056b numpy-1.18.2-cp38-cp38-manylinux1_x86_64.whl
5e0feb76849ca3e83dd396254e47c7dba65b3fa9ed3df67c2556293ae3e16de3 numpy-1.18.2-cp38-cp38-win32.whl
ba3c7a2814ec8a176bb71f91478293d633c08582119e713a0c5351c0f77698da numpy-1.18.2-cp38-cp38-win_amd64.whl
da204ce460aa4247e595b7c7189d2fb2ed5f796bc03197055de01dac61d0125e numpy-1.18.2.tar.gz
e7894793e6e8540dbeac77c87b489e331947813511108ae097f1715c018b8f3d numpy-1.18.2.zip
This release contains fixes for bugs reported against NumPy 1.18.0. Two
bugs in particular that caused widespread problems downstream were:
The Python versions supported in this release are 3.5-3.8. Downstream
developers should use Cython >= 0.29.14 for Python 3.8 support and
OpenBLAS >= 3.7 to avoid errors on the Skylake architecture.
A total of 7 people contributed to this release. People with a "+" by
their names contributed a patch for the first time.
A total of 13 pull requests were merged for this release.
f41ef9a855aa0baeb900827e2f99ab7b numpy-1.18.1-cp35-cp35m-macosx_10_6_intel.whl
5239118baa2f0db334e70aac6cf26927 numpy-1.18.1-cp35-cp35m-manylinux1_i686.whl
78d95d2f1814b517e7cc887e559c7cd4 numpy-1.18.1-cp35-cp35m-manylinux1_x86_64.whl
c58a268ad42c31883b5756ad20cebe87 numpy-1.18.1-cp35-cp35m-win32.whl
2ffc13917b6813a85b8e1032402ca5f5 numpy-1.18.1-cp35-cp35m-win_amd64.whl
c3ac9936c6b21fef95a2304505fdb594 numpy-1.18.1-cp36-cp36m-macosx_10_9_x86_64.whl
e0a26cc2d04a7f115489b9ccc9678d3f numpy-1.18.1-cp36-cp36m-manylinux1_i686.whl
d79f59200a821f90acf73f97c5252902 numpy-1.18.1-cp36-cp36m-manylinux1_x86_64.whl
8ba2338c677f238a84264633e3b96d9d numpy-1.18.1-cp36-cp36m-win32.whl
2a2ab91e19bd2703eaa1506b06036958 numpy-1.18.1-cp36-cp36m-win_amd64.whl
6cc9c5767ffc0de03685f928e4e97f0f numpy-1.18.1-cp37-cp37m-macosx_10_9_x86_64.whl
486a5ab59cbdfc2861be08701702e251 numpy-1.18.1-cp37-cp37m-manylinux1_i686.whl
08123450dfbb9f53c812caa65895afcb numpy-1.18.1-cp37-cp37m-manylinux1_x86_64.whl
3e4e223ba7b784cd90f891e8867d0cf8 numpy-1.18.1-cp37-cp37m-win32.whl
4a51b085685511e95be3077a7360785f numpy-1.18.1-cp37-cp37m-win_amd64.whl
d1f034f563252a57b9235bc9ea2c1aef numpy-1.18.1-cp38-cp38-macosx_10_9_x86_64.whl
2252dcd00034da6f99c98584875dcb9d numpy-1.18.1-cp38-cp38-manylinux1_i686.whl
6e93a3c8618e87aee2b0cd648b1730f0 numpy-1.18.1-cp38-cp38-manylinux1_x86_64.whl
10f1d9a6faf6a2fdb0693347cb2348b0 numpy-1.18.1-cp38-cp38-win32.whl
b9d0e0840e3e6e37f384a794d48c4ae8 numpy-1.18.1-cp38-cp38-win_amd64.whl
9ab88e85f5b1fc70506287317b58f71d numpy-1.18.1.tar.gz
18787d6482681c85a66629a781fb84c3 numpy-1.18.1.zip
20b26aaa5b3da029942cdcce719b363dbe58696ad182aff0e5dcb1687ec946dc numpy-1.18.1-cp35-cp35m-macosx_10_6_intel.whl
70a840a26f4e61defa7bdf811d7498a284ced303dfbc35acb7be12a39b2aa121 numpy-1.18.1-cp35-cp35m-manylinux1_i686.whl
17aa7a81fe7599a10f2b7d95856dc5cf84a4eefa45bc96123cbbc3ebc568994e numpy-1.18.1-cp35-cp35m-manylinux1_x86_64.whl
f3d0a94ad151870978fb93538e95411c83899c9dc63e6fb65542f769568ecfa5 numpy-1.18.1-cp35-cp35m-win32.whl
1786a08236f2c92ae0e70423c45e1e62788ed33028f94ca99c4df03f5be6b3c6 numpy-1.18.1-cp35-cp35m-win_amd64.whl
ae0975f42ab1f28364dcda3dde3cf6c1ddab3e1d4b2909da0cb0191fa9ca0480 numpy-1.18.1-cp36-cp36m-macosx_10_9_x86_64.whl
cf7eb6b1025d3e169989416b1adcd676624c2dbed9e3bcb7137f51bfc8cc2572 numpy-1.18.1-cp36-cp36m-manylinux1_i686.whl
b765ed3930b92812aa698a455847141869ef755a87e099fddd4ccf9d81fffb57 numpy-1.18.1-cp36-cp36m-manylinux1_x86_64.whl
2d75908ab3ced4223ccba595b48e538afa5ecc37405923d1fea6906d7c3a50bc numpy-1.18.1-cp36-cp36m-win32.whl
9acdf933c1fd263c513a2df3dceecea6f3ff4419d80bf238510976bf9bcb26cd numpy-1.18.1-cp36-cp36m-win_amd64.whl
56bc8ded6fcd9adea90f65377438f9fea8c05fcf7c5ba766bef258d0da1554aa numpy-1.18.1-cp37-cp37m-macosx_10_9_x86_64.whl
e422c3152921cece8b6a2fb6b0b4d73b6579bd20ae075e7d15143e711f3ca2ca numpy-1.18.1-cp37-cp37m-manylinux1_i686.whl
b3af02ecc999c8003e538e60c89a2b37646b39b688d4e44d7373e11c2debabec numpy-1.18.1-cp37-cp37m-manylinux1_x86_64.whl
d92350c22b150c1cae7ebb0ee8b5670cc84848f6359cf6b5d8f86617098a9b73 numpy-1.18.1-cp37-cp37m-win32.whl
77c3bfe65d8560487052ad55c6998a04b654c2fbc36d546aef2b2e511e760971 numpy-1.18.1-cp37-cp37m-win_amd64.whl
c98c5ffd7d41611407a1103ae11c8b634ad6a43606eca3e2a5a269e5d6e8eb07 numpy-1.18.1-cp38-cp38-macosx_10_9_x86_64.whl
9537eecf179f566fd1c160a2e912ca0b8e02d773af0a7a1120ad4f7507cd0d26 numpy-1.18.1-cp38-cp38-manylinux1_i686.whl
e840f552a509e3380b0f0ec977e8124d0dc34dc0e68289ca28f4d7c1d0d79474 numpy-1.18.1-cp38-cp38-manylinux1_x86_64.whl
590355aeade1a2eaba17617c19edccb7db8d78760175256e3cf94590a1a964f3 numpy-1.18.1-cp38-cp38-win32.whl
39d2c685af15d3ce682c99ce5925cc66efc824652e10990d2462dfe9b8918c6a numpy-1.18.1-cp38-cp38-win_amd64.whl
e37802868ba5f389bf4e3f4c40c16e1b031814f0585ac122637de219de6279cb numpy-1.18.1.tar.gz
b6ff59cee96b454516e47e7721098e6ceebef435e3e21ac2d6c3b8b02628eb77 numpy-1.18.1.zip
This release contains fixes for bugs reported against NumPy 1.17.4 along
with some build improvements. The Python versions supported in this
release are 3.5-3.8.
Downstream developers should use Cython >= 0.29.14 for Python 3.8
support and OpenBLAS >= 3.7 to avoid errors on the Skylake
architecture.
It is recommended that developers interested in the new random bit
generators upgrade to the NumPy 1.18.x series, as it has updated
documentation and many small improvements.
A total of 6 people contributed to this release. People with a "+" by
their names contributed a patch for the first time.
A total of 8 pull requests were merged for this release.
e1d378317e20e340ea46937cbaf45094 numpy-1.17.5-cp35-cp35m-macosx_10_9_intel.whl
49b263605ab32a0880fa68b29c2586b0 numpy-1.17.5-cp35-cp35m-manylinux1_i686.whl
41b4800ea0b8410919500e264994fb6f numpy-1.17.5-cp35-cp35m-manylinux1_x86_64.whl
7ac18d112a745aabf5059da85de91c57 numpy-1.17.5-cp35-cp35m-win32.whl
98dfbe821c010b34771f789dff36ca76 numpy-1.17.5-cp35-cp35m-win_amd64.whl
3a14d2a58b72db3020b2d1760aefed5c numpy-1.17.5-cp36-cp36m-macosx_10_9_x86_64.whl
47810aa1c34d9d46581f0b8dee0d1acc numpy-1.17.5-cp36-cp36m-manylinux1_i686.whl
e0f2d037ecd1ecbfa5f3d282bf69fad2 numpy-1.17.5-cp36-cp36m-manylinux1_x86_64.whl
addda5c691eaca7b8aa2f8413c936f54 numpy-1.17.5-cp36-cp36m-win32.whl
ee5c057451e77ad2aeb1a7ed2df3754d numpy-1.17.5-cp36-cp36m-win_amd64.whl
8be28f068e0b2e9c5202debd6e2bcf6c numpy-1.17.5-cp37-cp37m-macosx_10_9_x86_64.whl
8400685497628c48b292ff8bb8b7286e numpy-1.17.5-cp37-cp37m-manylinux1_i686.whl
a399036176dd2e23e07b866b460b6f20 numpy-1.17.5-cp37-cp37m-manylinux1_x86_64.whl
f9497454c4d3a8fdcc62788420f365c7 numpy-1.17.5-cp37-cp37m-win32.whl
930a172f90ea6658adf2d25700a98757 numpy-1.17.5-cp37-cp37m-win_amd64.whl
1fddb7a3de3aba553614919411e70698 numpy-1.17.5-cp38-cp38-macosx_10_9_x86_64.whl
003e1514a5ed31cebb10a8055f7b63e6 numpy-1.17.5-cp38-cp38-manylinux1_i686.whl
de8f5f3f602f889fb0ed42cfd5da40bc numpy-1.17.5-cp38-cp38-manylinux1_x86_64.whl
91a89b84875f30f6b8166d4791212aa3 numpy-1.17.5-cp38-cp38-win32.whl
ba5eb1d2705e4a169df105ce7a95abc0 numpy-1.17.5-cp38-cp38-win_amd64.whl
59d27965e42caedf8913ebe03cf36f87 numpy-1.17.5.tar.gz
763a5646fa6eef7a22f4895bca0524f2 numpy-1.17.5.zip
d977a91f7b02b14843562d2e8740acfdfb46996e64985b69b2d404bfa43bc07d numpy-1.17.5-cp35-cp35m-macosx_10_9_intel.whl
6c6cab8089ad39554d7fed04d338e7bd7ea6ac48235a542ea0b37214c8d0a9bc numpy-1.17.5-cp35-cp35m-manylinux1_i686.whl
4760bcc6adaf0d853379d01ce60f320e5ab6d0d719662aef3c460dad3cf79989 numpy-1.17.5-cp35-cp35m-manylinux1_x86_64.whl
c3fb7eb84cd455ea2294980e557cc40b0042f7fc7ebab28c74ccae85c8b0c2c4 numpy-1.17.5-cp35-cp35m-win32.whl
6167d214a842610d4168311d803f2a6f2c1a9a866b6b370f7408ba508d265add numpy-1.17.5-cp35-cp35m-win_amd64.whl
ca43581440ce2585f83c8d524c3435569b212bf281b7c67395e78260fcffb341 numpy-1.17.5-cp36-cp36m-macosx_10_9_x86_64.whl
5347fc1258ebe501d352363da06229fc97785d67423b56a9fd032a8389355781 numpy-1.17.5-cp36-cp36m-manylinux1_i686.whl
1739f079e2fcc985cc187aa3ce489d127a02ff12bcc5178269bb7ce5dc860e8f numpy-1.17.5-cp36-cp36m-manylinux1_x86_64.whl
af51bc1d78ddc1588115b73a1d3824440f5cf55c498681e8ac4ab2f28f0efa99 numpy-1.17.5-cp36-cp36m-win32.whl
259b5aa0a1d2e63bbe9d985bc8249b515541b9993e1b1540563428f5db7bc389 numpy-1.17.5-cp36-cp36m-win_amd64.whl
8ba8ef37b16288dd2390cd9dea3c8470436f6cfe4c665f4640c349e98bae2908 numpy-1.17.5-cp37-cp37m-macosx_10_9_x86_64.whl
348efb76a26f9f3235e492813503639731a885aa5780579ee28d688607d188b2 numpy-1.17.5-cp37-cp37m-manylinux1_i686.whl
31db2f9604afbf897b23478942074bbbb2513467d2b4b4ac573a7b65c63c073c numpy-1.17.5-cp37-cp37m-manylinux1_x86_64.whl
68bdc37f3ccdc3e945914b3201acd8823ac9dec870ede5371cd5cfedcf5a901a numpy-1.17.5-cp37-cp37m-win32.whl
15db548aade41e32bfb6f6d3d9e91797261197622afe4102f79220d17da2a29f numpy-1.17.5-cp37-cp37m-win_amd64.whl
fc56ec046a2cc3aba91fe29e482c145c17925db1b00eafa924d9e16020a3eb88 numpy-1.17.5-cp38-cp38-macosx_10_9_x86_64.whl
73d20aebe518997dce89da356d4b8e4cf60143151c22a0ec76cb00840bb09320 numpy-1.17.5-cp38-cp38-manylinux1_i686.whl
aa3dd92c1427e032fe345f054503f45c9fc7883aa7156a60900641259dd78a78 numpy-1.17.5-cp38-cp38-manylinux1_x86_64.whl
6338f8fa99ea0b00944a256941eea406089a9c0242f594b69289edd91e2d6192 numpy-1.17.5-cp38-cp38-win32.whl
14804866e57322bf601c966e428c271b7e301b631bdfbe0522800483b802bc58 numpy-1.17.5-cp38-cp38-win_amd64.whl
ef0801b6feca0f50e56c29b02e0f3e2c8c40963d44c38484e6f47bfcfbf17d32 numpy-1.17.5.tar.gz
16507ba6617f62ae3c6ab1725ae6f550331025d4d9a369b83f6d5a470446c342 numpy-1.17.5.zip
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.
np.testing.utils
functions have been updated from 1.19.0-dev0.assert_array_compare
function to additional types.@
) 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.
@
) for boolean typesBooleans were being treated as integers rather than booleans, which was
a regression from previous behavior.
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.
A total of 10 people contributed to this release.
A total of 14 pull requests were merged for this release.
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
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
In addition to the usual bug fixes, this NumPy release cleans up and
documents the new random C-API, expires a large number of old
deprecations, and improves the appearance of the documentation. The
Python versions supported are 3.5-3.8. This is the last NumPy release
series that will support Python 3.5.
Downstream developers should use Cython >= 0.29.14 for Python 3.8
support and OpenBLAS >= 3.7 to avoid problems on the Skylake
architecture.
numpy.random
has been defined and documented.numpy.random
The method multivariate_hypergeometric
has been added to the class
[numpy.random.Generator]{.title-ref}. This method generates random
variates from the multivariate hypergeometric probability distribution.
(gh-13794)
np.fromfile
and np.fromstring
will error on bad dataIn future numpy releases, the functions np.fromfile
and
np.fromstring
will throw an error when parsing bad data. This will now
give a DeprecationWarning
where previously partial or even invalid
data was silently returned. This deprecation also affects the C defined
functions PyArray_FromString
and PyArray_FromFile
(gh-13605)
ma.fill_value
Setting a MaskedArray.fill_value
to a non-scalar array is deprecated
since the logic to broadcast the fill value to the array is fragile,
especially when slicing.
(gh-13698)
PyArray_As1D
, PyArray_As2D
PyArray_As1D
, PyArray_As2D
are deprecated, use PyArray_AsCArray
instead (gh-14036)
np.alen
np.alen
was deprecated. Use len
instead.
(gh-14181)
In accordance with
NEP-32,
the financial functions fv
ipmt
, irr
, mirr
, nper
, npv
,
pmt
, ppmt
, pv
and rate
are deprecated, and will be removed from
NumPy 1.20.The replacement for these functions is the Python package
numpy-financial.
(gh-14720)
axis
argument to numpy.ma.mask_cols
and numpy.ma.mask_row
is deprecatedThis argument was always ignored.
(gh-14996)
PyArray_As1D
and PyArray_As2D
have been removed in favor ofPyArray_AsCArray
np.rank
has been removed. This was deprecated in NumPy 1.10 andnp.ndim
.expand_dims
out-of-range axes in 1.13.0 hasPyArray_FromDimsAndDataAndDescr
and PyArray_FromDims
have beenPyArray_NewFromDescr
and PyArray_SimpleNew
instead.numeric.loads
, numeric.load
, np.ma.dump
, np.ma.dumps
,np.ma.load
, np.ma.loads
are removed, use pickle
methodsarrayprint.FloatFormat
, arrayprint.LongFloatFormat
has beenFloatingFormat
insteadarrayprint.ComplexFormat
, arrayprint.LongComplexFormat
has beenComplexFloatingFormat
insteadarrayprint.StructureFormat
has been removed, useStructureVoidFormat
insteadnp.testing.rand
has been removed. This was deprecated in NumPynp.random.rand
.SafeEval
in numpy/lib/utils.py
has been removed. This wasnp.safe_eval
instead.np.select
(gh-14583)num
must be an integer. Deprecated in NumPyout
kwarg.The files numpy/testing/decorators.py
, numpy/testing/noseclasses.py
and numpy/testing/nosetester.py
have been removed. They were never
meant to be public (all relevant objects are present in the
numpy.testing
namespace), and importing them has given a deprecation
warning since NumPy 1.15.0
(gh-14567)
If drop_fields
is used to drop all fields, previously the array would
be completely discarded and None returned. Now it returns an array of
the same shape as the input, but with no fields. The old behavior can be
retained with:
dropped_arr = drop_fields(arr, ['a', 'b'])
if dropped_arr.dtype.names == ():
dropped_arr = None
converting the empty recarray to None
(gh-14510)
numpy.argmin/argmax/min/max
returns NaT
if it exists in arraynumpy.argmin
, numpy.argmax
, numpy.min
, and numpy.max
will return
NaT
if it exists in the array.
(gh-14717)
np.can_cast(np.uint64, np.timedelta64, casting='safe')
is now False
Previously this was True
- however, this was inconsistent with
uint64
not being safely castable to int64
, and resulting in strange
type resolution.
If this impacts your code, cast uint64
to int64
first.
(gh-14718)
numpy.random.Generator.integers
There was a bug in numpy.random.Generator.integers
that caused biased
sampling of 8 and 16 bit integer types. Fixing that bug has changed the
output stream from what it was in previous releases.
(gh-14777)
datetime64
, timedelta64
np.datetime('NaT')
should behave more like float('Nan')
. Add needed
infrastructure so np.isinf(a)
and np.isnan(a)
will run on
datetime64
and timedelta64
dtypes. Also added specific loops for
numpy.fmin
and numpy.fmax
that mask NaT
. This may require
adjustment to user- facing code. Specifically, code that either
disallowed the calls to numpy.isinf
or numpy.isnan
or checked that
they raised an exception will require adaptation, and code that
mistakenly called numpy.fmax
and numpy.fmin
instead of
numpy.maximum
or numpy.minimum
respectively will requre adjustment.
This also affects numpy.nanmax
and numpy.nanmin
.
(gh-14841)
PyDataType_ISUNSIZED(descr)
now returns False for structured datatypesPreviously this returned True for any datatype of itemsize 0, but now
this returns false for the non-flexible datatype with itemsize 0,
np.dtype([])
. (gh-14393)
*.pxd
cython import fileAdded a numpy/__init__.pxd
file. It will be used for cimport numpy
(gh-12284)
expand_dims
The numpy.expand_dims
axis
keyword can now accept a tuple of axes.
Previously, axis
was required to be an integer.
(gh-14051)
Added support for 64-bit (ILP64) OpenBLAS. See site.cfg.example
for
details. (gh-15012)
--f2cmap
option to F2PYAllow specifying a file to load Fortran-to-C type map customizations
from. (gh-15113)
On any given platform, two of np.intc
, np.int_
, and np.longlong
would previously appear indistinguishable through their repr
, despite
their corresponding dtype
having different properties. A similar
problem existed for the unsigned counterparts to these types, and on
some platforms for np.double
and np.longdouble
These types now always print with a unique __name__
.
(gh-10151)
argwhere
now produces a consistent result on 0d arraysOn N-d arrays, numpy.argwhere
now always produces an array of shape
(n_non_zero, arr.ndim)
, even when arr.ndim == 0
. Previously, the
last axis would have a dimension of 1 in this case.
(gh-13610)
axis
argument for random.permutation
and random.shuffle
Previously the random.permutation
and random.shuffle
functions can
only shuffle an array along the first axis; they now have a new argument
axis
which allows shuffle along a specified axis.
(gh-13829)
method
keyword argument for np.random.multivariate_normal
A method
keyword argument is now available for
np.random.multivariate_normal
with possible values
{'svd', 'eigh', 'cholesky'}
. To use it, write
np.random.multivariate_normal(..., method=<method>)
.
(gh-14197)
numpy.fromstring
Now numpy.fromstring
can read complex numbers.
(gh-14227)
numpy.unique
has consistent axes order when axis
is not NoneUsing moveaxis
instead of swapaxes
in numpy.unique
, so that the
ordering of axes except the axis in arguments will not be broken.
(gh-14255)
numpy.matmul
with boolean output now converts to boolean valuesCalling numpy.matmul
where the output is a boolean array would fill
the array with uint8 equivalents of the result, rather than 0/1. Now it
forces the output to 0 or 1 (NPY_TRUE
or NPY_FALSE
).
(gh-14464)
numpy.random.randint
produced incorrect value when the range was 2**32
The implementation introduced in 1.17.0 had an incorrect check when
determining whether to use the 32-bit path or the full 64-bit path that
incorrectly redirected random integer generation with a high - low range
of 2**32
to the 64-bit generator.
(gh-14501)
numpy.fromfile
Now numpy.fromfile
can read complex numbers.
(gh-14730)
std=c99
added if compiler is named gcc
GCC before version 5 requires the -std=c99
command line argument.
Newer compilers automatically turn on C99 mode. The compiler setup code
will automatically add the code if the compiler name has gcc
in it.
(gh-14771)
NaT
now sorts to the end of arraysNaT
is now effectively treated as the largest integer for sorting
purposes, so that it sorts to the end of arrays. This change is for
consistency with NaN
sorting behavior.
(gh-12658)
(gh-15068)
threshold
in np.set_printoptions
raises TypeError
or ValueError
Previously an incorrect threshold
raised ValueError
; it now raises
TypeError
for non-numeric types and ValueError
for nan
values.
(gh-13899)
A UserWarning
will be emitted when saving an array via numpy.save
with metadata
. Saving such an array may not preserve metadata, and if
metadata is preserved, loading it will cause a ValueError
. This
shortcoming in save and load will be addressed in a future release.
(gh-14142)
numpy.distutils
append behavior changed for LDFLAGS and similar[numpy.distutils]{.title-ref} has always overridden rather than appended
to LDFLAGS
and other similar such environment variables for compiling
Fortran extensions. Now the default behavior has changed to appending -
which is the expected behavior in most situations. To preserve the old
(overwriting) behavior, set the NPY_DISTUTILS_APPEND_FLAGS
environment
variable to 0. This applies to: LDFLAGS
, F77FLAGS
, F90FLAGS
,
FREEFLAGS
, FOPT
, FDEBUG
, and FFLAGS
. NumPy 1.16 and 1.17 gave
build warnings in situations where this change in behavior would have
affected the compile flags used.
(gh-14248)
numpy.random.entropy
without a deprecationnumpy.random.entropy
was added to the numpy.random
namespace in
1.17.0. It was meant to be a private c-extension module, but was exposed
as public. It has been replaced by numpy.random.SeedSequence
so the
module was completely removed.
(gh-14498)
-Werror
Added two new configuration options. During the build_src
subcommand,
as part of configuring NumPy, the files _numpyconfig.h
and config.h
are created by probing support for various runtime functions and
routines. Previously, the very verbose compiler output during this stage
clouded more important information. By default the output is silenced.
Running runtests.py --debug-info
will add --verbose-cfg
to the
build_src
subcommand, which will restore the previous behaviour.
Adding CFLAGS=-Werror
to turn warnings into errors would trigger
errors during the configuration. Now runtests.py --warn-error
will add
--warn-error
to the build
subcommand, which will percolate to the
build_ext
and build_lib
subcommands. This will add the compiler flag
to those stages and turn compiler warnings into errors while actually
building NumPy itself, avoiding the build_src
subcommand compiler
calls.
40576031bfba1732ee850a1c576ba096 numpy-1.18.0-cp35-cp35m-macosx_10_6_intel.whl
99dce76e7845e10585001a6892bb5f63 numpy-1.18.0-cp35-cp35m-manylinux1_i686.whl
81e4e422392219e8bc809d9b17c0d0a6 numpy-1.18.0-cp35-cp35m-manylinux1_x86_64.whl
785d52acbbbcdd4967acd6f27e341dc6 numpy-1.18.0-cp35-cp35m-win32.whl
52ab10e952b72c69f492f30dcc03e561 numpy-1.18.0-cp35-cp35m-win_amd64.whl
dc0f8c3b608f17fd1af2ac5dab012683 numpy-1.18.0-cp36-cp36m-macosx_10_9_x86_64.whl
990b9567a5f5322ec0115552be9bd169 numpy-1.18.0-cp36-cp36m-manylinux1_i686.whl
7cdcb013123ae7b44100ca00a98f8ab3 numpy-1.18.0-cp36-cp36m-manylinux1_x86_64.whl
f6b497230df4d8b9a3e80e8e6b896caa numpy-1.18.0-cp36-cp36m-win32.whl
28de3a14f6fcf1391929f1061590b49d numpy-1.18.0-cp36-cp36m-win_amd64.whl
d3279da6815745d977f16383d9b8c0d7 numpy-1.18.0-cp37-cp37m-macosx_10_9_x86_64.whl
3eff2e553b4826428790551834f862e9 numpy-1.18.0-cp37-cp37m-manylinux1_i686.whl
f0f7b7e58635dea515f6aa5302bdd924 numpy-1.18.0-cp37-cp37m-manylinux1_x86_64.whl
df8e307782f55f508405b135211dbeb0 numpy-1.18.0-cp37-cp37m-win32.whl
022dd577b0858b146e2d33ed7426cf07 numpy-1.18.0-cp37-cp37m-win_amd64.whl
89bbc272a243cdf5c521fea5efe6b853 numpy-1.18.0-cp38-cp38-macosx_10_9_x86_64.whl
dc6e094c4c7777ac4040e6f945788f60 numpy-1.18.0-cp38-cp38-manylinux1_i686.whl
4cac27e608e6d24a8b2b6b911bd23d6c numpy-1.18.0-cp38-cp38-manylinux1_x86_64.whl
45a9355fb360d321d90ae55aefb1d206 numpy-1.18.0-cp38-cp38-win32.whl
c86dc59260f42e9cce05a396cbb33f4e numpy-1.18.0-cp38-cp38-win_amd64.whl
2f607a0e79321b6e4f426307134dbd2c numpy-1.18.0.tar.gz
3545a7dc22e704461f6ccb604b8da952 numpy-1.18.0.zip
b091e5d4cbbe79f0e8b6b6b522346e54a282eadb06e3fd761e9b6fafc2ca91ad numpy-1.18.0-cp35-cp35m-macosx_10_6_intel.whl
443ab93fc35b31f01db8704681eb2fd82f3a1b2fa08eed2dd0e71f1f57423d4a numpy-1.18.0-cp35-cp35m-manylinux1_i686.whl
88c5ccbc4cadf39f32193a5ef22e3f84674418a9fd877c63322917ae8f295a56 numpy-1.18.0-cp35-cp35m-manylinux1_x86_64.whl
e1080e37c090534adb2dd7ae1c59ee883e5d8c3e63d2a4d43c20ee348d0459c5 numpy-1.18.0-cp35-cp35m-win32.whl
f084d513de729ff10cd72a1f80db468cff464fedb1ef2fea030221a0f62d7ff4 numpy-1.18.0-cp35-cp35m-win_amd64.whl
1baefd1fb4695e7f2e305467dbd876d765e6edd30c522894df76f8301efaee36 numpy-1.18.0-cp36-cp36m-macosx_10_9_x86_64.whl
cc070fc43a494e42732d6ae2f6621db040611c1dde64762a40c8418023af56d7 numpy-1.18.0-cp36-cp36m-manylinux1_i686.whl
6f8113c8dbfc192b58996ee77333696469ea121d1c44ea429d8fd266e4c6be51 numpy-1.18.0-cp36-cp36m-manylinux1_x86_64.whl
a30f5c3e1b1b5d16ec1f03f4df28e08b8a7529d8c920bbed657f4fde61f1fbcd numpy-1.18.0-cp36-cp36m-win32.whl
3c68c827689ca0ca713dba598335073ce0966850ec0b30715527dce4ecd84055 numpy-1.18.0-cp36-cp36m-win_amd64.whl
f6a7421da632fc01e8a3ecd19c3f7350258d82501a646747664bae9c6a87c731 numpy-1.18.0-cp37-cp37m-macosx_10_9_x86_64.whl
905cd6fa6ac14654a6a32b21fad34670e97881d832e24a3ca32e19b455edb4a8 numpy-1.18.0-cp37-cp37m-manylinux1_i686.whl
854f6ed4fa91fa6da5d764558804ba5b0f43a51e5fe9fc4fdc93270b052f188a numpy-1.18.0-cp37-cp37m-manylinux1_x86_64.whl
ac3cf835c334fcc6b74dc4e630f9b5ff7b4c43f7fb2a7813208d95d4e10b5623 numpy-1.18.0-cp37-cp37m-win32.whl
62506e9e4d2a39c87984f081a2651d4282a1d706b1a82fe9d50a559bb58e705a numpy-1.18.0-cp37-cp37m-win_amd64.whl
9d6de2ad782aae68f7ed0e0e616477fbf693d6d7cc5f0f1505833ff12f84a673 numpy-1.18.0-cp38-cp38-macosx_10_9_x86_64.whl
1c35fb1131362e6090d30286cfda52ddd42e69d3e2bf1fea190a0fad83ea3a18 numpy-1.18.0-cp38-cp38-manylinux1_i686.whl
56710a756c5009af9f35b91a22790701420406d9ac24cf6b652b0e22cfbbb7ff numpy-1.18.0-cp38-cp38-manylinux1_x86_64.whl
03bbde29ac8fba860bb2c53a1525b3604a9b60417855ac3119d89868ec6041c3 numpy-1.18.0-cp38-cp38-win32.whl
712f0c32555132f4b641b918bdb1fd3c692909ae916a233ce7f50eac2de87e37 numpy-1.18.0-cp38-cp38-win_amd64.whl
e5eaf340489b76eef91352bf48b36e92ace07f6b0f1c87dcd3b5dbada97df03a numpy-1.18.0.tar.gz
a9d72d9abaf65628f0f31bbb573b7d9304e43b1e6bbae43149c17737a42764c4 numpy-1.18.0.zip
In addition to the usual bug fixes, this NumPy release cleans up and
documents the new random C-API, expires a large number of old
deprecations, and improves the appearance of the documentation. The
Python versions supported are 3.5-3.8. This is the last NumPy release
series that will support Python 3.5.
Downstream developers should use Cython >= 0.29.14 for Python 3.8
support and OpenBLAS >= 3.7 to avoid problems on the Skylake
architecture.
numpy.random
has been defined and documented.numpy.random
The method multivariate_hypergeometric
has been added to the class
numpy.random.Generator
. This method generates random variates from the
multivariate hypergeometric probability distribution.
(gh-13794 <https://github.com/numpy/numpy/pull/13794>
__)
np.fromfile
and np.fromstring
will error on bad dataIn future numpy releases, the functions np.fromfile
and
np.fromstring
will throw an error when parsing bad data. This will now
give a DeprecationWarning
where previously partial or even invalid
data was silently returned. This deprecation also affects the C defined
functions PyArray_FromString
and PyArray_FromFile
(gh-13605 <https://github.com/numpy/numpy/pull/13605>
__)
ma.fill_value
Setting a MaskedArray.fill_value
to a non-scalar array is deprecated
since the logic to broadcast the fill value to the array is fragile,
especially when slicing.
(gh-13698 <https://github.com/numpy/numpy/pull/13698>
__)
PyArray_As1D
, PyArray_As2D
PyArray_As1D
, PyArray_As2D
are deprecated, use PyArray_AsCArray
instead (gh-14036 <https://github.com/numpy/numpy/pull/14036>
__)
np.alen
np.alen
was deprecated. Use len
instead.
(gh-14181 <https://github.com/numpy/numpy/pull/14181>
__)
In accordance with
NEP-32 <https://numpy.org/neps/nep-0032-remove-financial-functions.html>
,
the financial functions fv
, ipmt
, irr
, mirr
, nper
, npv
,
pmt
, ppmt
, pv
and rate
are deprecated, and will be removed from
NumPy 1.20.The replacement for these functions is the Python package
numpy-financial <https://pypi.org/project/numpy-financial>
*.
(gh-14720 <https://github.com/numpy/numpy/pull/14720>
__)
axis
argument to numpy.ma.mask_cols
and numpy.ma.mask_row
is deprecatedThis argument was always ignored.
(gh-14996 <https://github.com/numpy/numpy/pull/14996>
__)
PyArray_As1D
and PyArray_As2D
have been removed in favor of
PyArray_AsCArray
(gh-14036 <https://github.com/numpy/numpy/pull/14036>
__)
np.rank
has been removed. This was deprecated in NumPy 1.10 and
has been replaced by np.ndim
.
(gh-14039 <https://github.com/numpy/numpy/pull/14039>
__)
The deprecation of expand_dims
out-of-range axes in 1.13.0 has
expired.
(gh-14051 <https://github.com/numpy/numpy/pull/14051>
__)
PyArray_FromDimsAndDataAndDescr
and PyArray_FromDims
have been
removed (they will always raise an error). Use
PyArray_NewFromDescr
and PyArray_SimpleNew
instead.
(gh-14100 <https://github.com/numpy/numpy/pull/14100>
__)
numeric.loads
, numeric.load
, np.ma.dump
, np.ma.dumps
,
np.ma.load
, np.ma.loads
are removed, use pickle
methods
instead (gh-14256 <https://github.com/numpy/numpy/pull/14256>
__)
arrayprint.FloatFormat
, arrayprint.LongFloatFormat
has been
removed, use FloatingFormat
instead
arrayprint.ComplexFormat
, arrayprint.LongComplexFormat
has been
removed, use ComplexFloatingFormat
instead
arrayprint.StructureFormat
has been removed, use
StructureVoidFormat
instead
(gh-14259 <https://github.com/numpy/numpy/pull/14259>
__)
np.testing.rand
has been removed. This was deprecated in NumPy
1.11 and has been replaced by np.random.rand
.
(gh-14325 <https://github.com/numpy/numpy/pull/14325>
__)
Class SafeEval
in numpy/lib/utils.py
has been removed. This was
deprecated in NumPy 1.10. Use np.safe_eval
instead.
(gh-14335 <https://github.com/numpy/numpy/pull/14335>
__)
Remove deprecated support for boolean and empty condition lists in
np.select
(gh-14583 <https://github.com/numpy/numpy/pull/14583>
__)
Array order only accepts 'C', 'F', 'A', and 'K'. More permissive
options were deprecated in NumPy 1.11.
(gh-14596 <https://github.com/numpy/numpy/pull/14596>
__)
np.linspace parameter num
must be an integer. Deprecated in NumPy
1.12. (gh-14620 <https://github.com/numpy/numpy/pull/14620>
__)
UFuncs with multiple outputs must use a tuple for the out
kwarg.
This finishes a deprecation started in NumPy 1.10.
(gh-14682 <https://github.com/numpy/numpy/pull/14682>
__)
The files numpy/testing/decorators.py
, numpy/testing/noseclasses.py
and numpy/testing/nosetester.py
have been removed. They were never
meant to be public (all relevant objects are present in the
numpy.testing
namespace), and importing them has given a deprecation
warning since NumPy 1.15.0
(gh-14567 <https://github.com/numpy/numpy/pull/14567>
__)
numpy.lib.recfunctions.drop_fields
can no longer return NoneIf drop_fields
is used to drop all fields, previously the array would
be completely discarded and None returned. Now it returns an array of
the same shape as the input, but with no fields. The old behavior can be
retained with::
dropped_arr = drop_fields(arr, ['a', 'b'])
if dropped_arr.dtype.names == ():
dropped_arr = None
converting the empty recarray to None
(gh-14510 <https://github.com/numpy/numpy/pull/14510>
__)
numpy.argmin/argmax/min/max
returns NaT
if it exists in arraynumpy.argmin
, numpy.argmax
, numpy.min
, and numpy.max
will return
NaT
if it exists in the array.
(gh-14717 <https://github.com/numpy/numpy/pull/14717>
__)
np.can_cast(np.uint64, np.timedelta64, casting='safe')
is now False
Previously this was True
- however, this was inconsistent with
uint64
not being safely castable to int64
, and resulting in strange
type resolution.
If this impacts your code, cast uint64
to int64
first.
(gh-14718 <https://github.com/numpy/numpy/pull/14718>
__)
numpy.random.Generator.integers
There was a bug in numpy.random.Generator.integers
that caused biased
sampling of 8 and 16 bit integer types. Fixing that bug has changed the
output stream from what it was in previous releases.
(gh-14777 <https://github.com/numpy/numpy/pull/14777>
__)
datetime64
, timedelta64
np.datetime('NaT')
should behave more like float('Nan')
. Add needed
infrastructure so np.isinf(a)
and np.isnan(a)
will run on
datetime64
and timedelta64
dtypes. Also added specific loops for
numpy.fmin
and numpy.fmax
that mask NaT
. This may require
adjustment to user- facing code. Specifically, code that either
disallowed the calls to numpy.isinf
or numpy.isnan
or checked that
they raised an exception will require adaptation, and code that
mistakenly called numpy.fmax
and numpy.fmin
instead of
numpy.maximum
or numpy.minimum
respectively will requre adjustment.
This also affects numpy.nanmax
and numpy.nanmin
.
(gh-14841 <https://github.com/numpy/numpy/pull/14841>
__)
PyDataType_ISUNSIZED(descr)
now returns False for structured datatypesPreviously this returned True for any datatype of itemsize 0, but now
this returns false for the non-flexible datatype with itemsize 0,
np.dtype([])
.
(gh-14393 <https://github.com/numpy/numpy/pull/14393>
__)
*.pxd
cython import fileAdded a numpy/__init__.pxd
file. It will be used for cimport numpy
(gh-12284 <https://github.com/numpy/numpy/pull/12284>
__)
expand_dims
The numpy.expand_dims
axis
keyword can now accept a tuple of axes.
Previously, axis
was required to be an integer.
(gh-14051 <https://github.com/numpy/numpy/pull/14051>
__)
Added support for 64-bit (ILP64) OpenBLAS compiled with
make INTERFACE64=1 SYMBOLSUFFIX=64_
. See site.cfg.example
for
details. (gh-15012 <https://github.com/numpy/numpy/pull/15012>
__)
On any given platform, two of np.intc
, np.int_
, and np.longlong
would previously appear indistinguishable through their repr
, despite
their corresponding dtype
having different properties. A similar
problem existed for the unsigned counterparts to these types, and on
some platforms for np.double
and np.longdouble
These types now always print with a unique __name__
.
(gh-10151 <https://github.com/numpy/numpy/pull/10151>
__)
argwhere
now produces a consistent result on 0d arraysOn N-d arrays, numpy.argwhere
now always produces an array of shape
(n_non_zero, arr.ndim)
, even when arr.ndim == 0
. Previously, the
last axis would have a dimension of 1 in this case.
(gh-13610 <https://github.com/numpy/numpy/pull/13610>
__)
axis
argument for random.permutation
and random.shuffle
Previously the random.permutation
and random.shuffle
functions can
only shuffle an array along the first axis; they now have a new argument
axis
which allows shuffle along a specified axis.
(gh-13829 <https://github.com/numpy/numpy/pull/13829>
__)
method
keyword argument for np.random.multivariate_normal
A method
keyword argument is now available for
np.random.multivariate_normal
with possible values
{'svd', 'eigh', 'cholesky'}
. To use it, write
np.random.multivariate_normal(..., method=<method>)
.
(gh-14197 <https://github.com/numpy/numpy/pull/14197>
__)
numpy.fromstring
Now numpy.fromstring
can read complex numbers.
(gh-14227 <https://github.com/numpy/numpy/pull/14227>
__)
numpy.unique
has consistent axes order when axis
is not NoneUsing moveaxis
instead of swapaxes
in numpy.unique
, so that the
ordering of axes except the axis in arguments will not be broken.
(gh-14255 <https://github.com/numpy/numpy/pull/14255>
__)
numpy.matmul
with boolean output now converts to boolean valuesCalling numpy.matmul
where the output is a boolean array would fill
the array with uint8 equivalents of the result, rather than 0/1. Now it
forces the output to 0 or 1 (NPY_TRUE
or NPY_FALSE
).
(gh-14464 <https://github.com/numpy/numpy/pull/14464>
__)
numpy.random.randint
produced incorrect value when the range was 2**32
The implementation introduced in 1.17.0 had an incorrect check when
determining whether to use the 32-bit path or the full 64-bit path that
incorrectly redirected random integer generation with a high - low range
of 2**32
to the 64-bit generator.
(gh-14501 <https://github.com/numpy/numpy/pull/14501>
__)
numpy.fromfile
Now numpy.fromfile
can read complex numbers.
(gh-14730 <https://github.com/numpy/numpy/pull/14730>
__)
std=c99
added if compiler is named gcc
GCC before version 5 requires the -std=c99
command line argument.
Newer compilers automatically turn on C99 mode. The compiler setup code
will automatically add the code if the compiler name has gcc
in it.
(gh-14771 <https://github.com/numpy/numpy/pull/14771>
__)
NaT
now sorts to the end of arraysNaT
is now effectively treated as the largest integer for sorting
purposes, so that it sorts to the end of arrays. This change is for
consistency with NaN
sorting behavior.
(gh-12658 <https://github.com/numpy/numpy/pull/12658>
__)
threshold
in np.set_printoptions
raises TypeError
or ValueError
Previously an incorrect threshold
raised ValueError
; it now raises
TypeError
for non-numeric types and ValueError
for nan
values.
(gh-13899 <https://github.com/numpy/numpy/pull/13899>
__)
A UserWarning
will be emitted when saving an array via numpy.save
with metadata
. Saving such an array may not preserve metadata, and if
metadata is preserved, loading it will cause a ValueError
. This
shortcoming in save and load will be addressed in a future release.
(gh-14142 <https://github.com/numpy/numpy/pull/14142>
__)
numpy.distutils
append behavior changed for LDFLAGS and similarnumpy.distutils
has always overridden rather than appended to
LDFLAGS
and other similar such environment variables for compiling
Fortran extensions. Now the default behavior has changed to appending -
which is the expected behavior in most situations. To preserve the old
(overwriting) behavior, set the NPY_DISTUTILS_APPEND_FLAGS
environment
variable to 0. This applies to: LDFLAGS
, F77FLAGS
, F90FLAGS
,
FREEFLAGS
, FOPT
, FDEBUG
, and FFLAGS
. NumPy 1.16 and 1.17 gave
build warnings in situations where this change in behavior would have
affected the compile flags used.
(gh-14248 <https://github.com/numpy/numpy/pull/14248>
__)
numpy.random.entropy
without a deprecationnumpy.random.entropy
was added to the numpy.random
namespace in
1.17.0. It was meant to be a private c-extension module, but was exposed
as public. It has been replaced by numpy.random.SeedSequence
so the
module was completely removed.
(gh-14498 <https://github.com/numpy/numpy/pull/14498>
__)
-Werror
Added two new configuration options. During the build_src
subcommand,
as part of configuring NumPy, the files _numpyconfig.h
and config.h
are created by probing support for various runtime functions and
routines. Previously, the very verbose compiler output during this stage
clouded more important information. By default the output is silenced.
Running runtests.py --debug-info
will add --verbose-cfg
to the
build_src
subcommand, which will restore the previous behaviour.
Adding CFLAGS=-Werror
to turn warnings into errors would trigger
errors during the configuration. Now runtests.py --warn-error
will add
--warn-error
to the build
subcommand, which will percolate to the
build_ext
and build_lib
subcommands. This will add the compiler flag
to those stages and turn compiler warnings into errors while actually
building NumPy itself, avoiding the build_src
subcommand compiler
calls.
(gh-14527 <https://github.com/numpy/numpy/pull/14527>
)
(gh-14518 <https://github.com/numpy/numpy/pull/14518>
)
2255387d9bc4c626b30b4b15d41360aa numpy-1.18.0rc1-cp35-cp35m-macosx_10_6_intel.whl
cebfd1b532cd5a0c389a12e0e9b9fc59 numpy-1.18.0rc1-cp35-cp35m-manylinux1_i686.whl
837c58136102cfa1689e3ce6092a3fe9 numpy-1.18.0rc1-cp35-cp35m-manylinux1_x86_64.whl
6dec034185665cb0968da09d1193da97 numpy-1.18.0rc1-cp35-cp35m-win32.whl
d551b3da446160c3a76329916d4544d2 numpy-1.18.0rc1-cp35-cp35m-win_amd64.whl
d39fad23c70d9e088328f51f989ceffe numpy-1.18.0rc1-cp36-cp36m-macosx_10_9_x86_64.whl
8b0ed4cdf265428bdaf3e8619c18754a numpy-1.18.0rc1-cp36-cp36m-manylinux1_i686.whl
aaa92422da55cb6e3136f89860239975 numpy-1.18.0rc1-cp36-cp36m-manylinux1_x86_64.whl
2406854f74f825d95a95a671034eef3b numpy-1.18.0rc1-cp36-cp36m-win32.whl
f706077e4d9ef783c43eb11dabc08e1e numpy-1.18.0rc1-cp36-cp36m-win_amd64.whl
caaa53c0e5c8c1fac3af572b98569c0c numpy-1.18.0rc1-cp37-cp37m-macosx_10_9_x86_64.whl
b1c2decd9ac8c6acb5c0b75372c5bbe9 numpy-1.18.0rc1-cp37-cp37m-manylinux1_i686.whl
575f399026a997e9af2c2108c1542b7f numpy-1.18.0rc1-cp37-cp37m-manylinux1_x86_64.whl
4d4bc961757251346c31dd6412961946 numpy-1.18.0rc1-cp37-cp37m-win32.whl
df6cede6ee4d4f75e739771ae27920bb numpy-1.18.0rc1-cp37-cp37m-win_amd64.whl
eea97481a22b8ec1b486fe8dfcc4bbe4 numpy-1.18.0rc1-cp38-cp38-macosx_10_9_x86_64.whl
a7ecc50638b65934388803e0c16e01ab numpy-1.18.0rc1-cp38-cp38-manylinux1_i686.whl
9626634ff55aba4c1f7726a969ef4e76 numpy-1.18.0rc1-cp38-cp38-manylinux1_x86_64.whl
4e6e1f36860da4b1f5cbe9874b71c6fc numpy-1.18.0rc1-cp38-cp38-win32.whl
a75c35b50e1c39428ff42f6291337487 numpy-1.18.0rc1-cp38-cp38-win_amd64.whl
076bed609ce25b400c3fa028d67a0b63 numpy-1.18.0rc1.tar.gz
2708c1b940227b917c088ad3b79183bf numpy-1.18.0rc1.zip
76d92b0b86227c6dbc3f9030b8b865f41ae04f73daa161e4e3c5566e03d6ed41 numpy-1.18.0rc1-cp35-cp35m-macosx_10_6_intel.whl
c9e73aa60166609c80f4285af8ba8b9b79e5a935df6927a174637c7c08fa8e67 numpy-1.18.0rc1-cp35-cp35m-manylinux1_i686.whl
2bc9c62dfc893626cdd50dce30f597f387c4aca11cd2cdffe3e7e06a4fe19ee6 numpy-1.18.0rc1-cp35-cp35m-manylinux1_x86_64.whl
73abd855401b9da6efb67490f4dd82226cf95f47d66b8dc9ebe4df523baaaeb2 numpy-1.18.0rc1-cp35-cp35m-win32.whl
c207646355d1d04c054d781ddcd100bbd5afc69f75f8a7623317b9db41a2015f numpy-1.18.0rc1-cp35-cp35m-win_amd64.whl
f676739da486d1c7de2d9450dafca6dee04f4d3e881b8761b795865ef1872eaf numpy-1.18.0rc1-cp36-cp36m-macosx_10_9_x86_64.whl
787781333c1d69c7c23ccd85165cca732a5f3fd9d997b8ee40829b7c0c38db86 numpy-1.18.0rc1-cp36-cp36m-manylinux1_i686.whl
e9907b5ea505dcd2cfaeb6ab08f241047ba651611f3974c9d624a7c5066ab3a6 numpy-1.18.0rc1-cp36-cp36m-manylinux1_x86_64.whl
78ca6befab03c682bcb013241801e3b750e9de9b60664e9839e5b2098b5580ee numpy-1.18.0rc1-cp36-cp36m-win32.whl
e89027b24027dade03929bc17adee23feec1f6f707f4ea366c5d5a342d4d81a1 numpy-1.18.0rc1-cp36-cp36m-win_amd64.whl
70319f4d4e0a0c94e04922aaaf8c9aca72d38b61cc69e338fb872e9ff27d94a2 numpy-1.18.0rc1-cp37-cp37m-macosx_10_9_x86_64.whl
4c51a496ec1ce170f2b5eb458c0441affc5b1fd1d7272cf322b443c90c69983a numpy-1.18.0rc1-cp37-cp37m-manylinux1_i686.whl
3701ddb007a0549c12b26e90c82d520b9c4acf801705b9334654ade2a9550b75 numpy-1.18.0rc1-cp37-cp37m-manylinux1_x86_64.whl
cbd2e1c1fb61b17eca745d7f9f6d684fd7f7817bef6454890eb6fa3e1cd4905a numpy-1.18.0rc1-cp37-cp37m-win32.whl
d7b16541a6e970d402587ff2f1cbd85753c8d982a0d5894991505fea9b81a52b numpy-1.18.0rc1-cp37-cp37m-win_amd64.whl
6beebdc222e214bbbafab8f089a65821cff6cad25b349eabb653490dc25342fd numpy-1.18.0rc1-cp38-cp38-macosx_10_9_x86_64.whl
fa8851d10af0739adcae54acf5706953e2e45752f4a550006f6f3aff92335566 numpy-1.18.0rc1-cp38-cp38-manylinux1_i686.whl
a8081de993fd47b9cb7376935bb1781118fd2c473a0e834601e28229275f78d6 numpy-1.18.0rc1-cp38-cp38-manylinux1_x86_64.whl
c9474a8fe03ca958e6fafefee13d6b4a45ea4ed7e35261abf61899c0f599a118 numpy-1.18.0rc1-cp38-cp38-win32.whl
9b369822f7681bc36b6ba624bc8ea0a1a456a9f72b324070d89ee2856cba62be numpy-1.18.0rc1-cp38-cp38-win_amd64.whl
3e9b05aa444adbd2511e5646541cf3aa64ef7aa923d48350aa8db8099a0a3800 numpy-1.18.0rc1.tar.gz
7b0b915190cf60e691c17147f5d955e273d4c482b795a7bb168ad4a2fe2fb180 numpy-1.18.0rc1.zip
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.
np.random.random_integers
biased generation of 8 and 16 bit integers.np.einsum
regression on Power9 and z/Linux.A total of 5 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
A total of 8 pull requests were merged for this release.
np.einsum
errors on Power9 Linux and z/Linux1d5b9a989a22e2c5d0774d9a8e19f3db 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
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
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.
matmul
fixed to use booleans instead of integers.PyArray_DescrCheck
macro has been changed/fixed.A total of 7 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
A total of 12 pull requests were merged for this release.
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
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
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.
A total of 7 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
A total of 8 pull requests were merged for this release.
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
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
The NumPy 1.16.5 release fixes bugs reported against the 1.16.4 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-dev, 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.
A total of 18 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
A total of 23 pull requests were merged for this release.
__all__
cf7ff97464eb044cb49618be5fe29aee numpy-1.16.5-cp27-cp27m-macosx_10_9_x86_64.whl
6fbf51644f8722fa90276c04fe3d031f numpy-1.16.5-cp27-cp27m-manylinux1_i686.whl
df4ab8600495131e44ad1b173f6cc9fc numpy-1.16.5-cp27-cp27m-manylinux1_x86_64.whl
2f6fd50a02da9d56e3d950a6b738337e numpy-1.16.5-cp27-cp27m-win32.whl
d36b67522ee102b7865a83b26a1d97aa numpy-1.16.5-cp27-cp27m-win_amd64.whl
5b4f83c092257f6c98bedd44505e7b6d numpy-1.16.5-cp27-cp27mu-manylinux1_i686.whl
d6fd33607099abdea62752cf303a1763 numpy-1.16.5-cp27-cp27mu-manylinux1_x86_64.whl
fa48e45bd3e5dbac923296b039e70706 numpy-1.16.5-cp35-cp35m-macosx_10_9_x86_64.whl
85a7db0c597037cced7ab82c0f0cdcc8 numpy-1.16.5-cp35-cp35m-manylinux1_i686.whl
401e053e98faada4bc8cdcc9b04d619f numpy-1.16.5-cp35-cp35m-manylinux1_x86_64.whl
2912ba9109dca60115dba59606cac27b numpy-1.16.5-cp35-cp35m-win32.whl
756b7ff320ef821f2cd279c5df7c9f46 numpy-1.16.5-cp35-cp35m-win_amd64.whl
2ae22b506a07575a4bc6a91d2db25df5 numpy-1.16.5-cp36-cp36m-macosx_10_9_x86_64.whl
12cbf61ed2abec3f77cfa3a46b7e4bdc numpy-1.16.5-cp36-cp36m-manylinux1_i686.whl
ab726a4244e9e070cde814d8415cff4c numpy-1.16.5-cp36-cp36m-manylinux1_x86_64.whl
752e461d193b7049e25c7e20f7d4808a numpy-1.16.5-cp36-cp36m-win32.whl
2712434cdfb27a301c49cf97eee656d5 numpy-1.16.5-cp36-cp36m-win_amd64.whl
394fee86faa235dea6d2bb6270961266 numpy-1.16.5-cp37-cp37m-macosx_10_9_x86_64.whl
0713da36acc884897f76bc8117ca7a42 numpy-1.16.5-cp37-cp37m-manylinux1_i686.whl
7856a32b3b2d93d018d2ba5dce941ffa numpy-1.16.5-cp37-cp37m-manylinux1_x86_64.whl
33b7fd0d727c9f09d61879afde8096f6 numpy-1.16.5-cp37-cp37m-win32.whl
5287ce297cd8093463bb29bef42db103 numpy-1.16.5-cp37-cp37m-win_amd64.whl
f9c22f53f17e81b25af8e53b026a9831 numpy-1.16.5.tar.gz
adaad8c166cf0344af3ca1a664dd4a38 numpy-1.16.5.zip
37fdd3bb05caaaacac58015cfa38e38b006ee9cef1eaacdb70bb68c16ac7db1d numpy-1.16.5-cp27-cp27m-macosx_10_9_x86_64.whl
f42e21d8db16315bc30b437bff63d6b143befb067b8cd396fa3ef17f1c21e1a0 numpy-1.16.5-cp27-cp27m-manylinux1_i686.whl
4208b225ae049641a7a99ab92e84ce9d642ded8250d2b6c9fd61a7fa8c072561 numpy-1.16.5-cp27-cp27m-manylinux1_x86_64.whl
4d790e2a37aa3350667d8bb8acc919010c7e46234c3d615738564ddc6d22026f numpy-1.16.5-cp27-cp27m-win32.whl
1594aec94e4896e0688f4f405481fda50fb70547000ae71f2e894299a088a661 numpy-1.16.5-cp27-cp27m-win_amd64.whl
2c5a556272c67566e8f4607d1c78ad98e954fa6c32802002a4a0b029ad8dd759 numpy-1.16.5-cp27-cp27mu-manylinux1_i686.whl
3a96e59f61c7a8f8838d0f4d19daeba551c5f07c5cdd5c81e8e9d4089ade0042 numpy-1.16.5-cp27-cp27mu-manylinux1_x86_64.whl
612297115bade249a118616c065597ff2e5e1f47ed220d7ba71f3e6c6ebcd814 numpy-1.16.5-cp35-cp35m-macosx_10_9_x86_64.whl
dbc9e9a6a5e0c4f57498855d4e30ef8b599c0ce13fdf9d64299197508d67d9e8 numpy-1.16.5-cp35-cp35m-manylinux1_i686.whl
fada0492dd35412cd96e0578677e9a4bdae8f102ef2b631301fcf19066b57119 numpy-1.16.5-cp35-cp35m-manylinux1_x86_64.whl
ada1a1cd68b9874fa480bd287438f92bd7ce88ca0dd6e8d56c70f2b3dab97314 numpy-1.16.5-cp35-cp35m-win32.whl
27aa457590268cb059c47daa8c55f48c610ce81da8a062ec117f74efa9124ec9 numpy-1.16.5-cp35-cp35m-win_amd64.whl
03b28330253904d410c3c82d66329f29645eb54a7345cb7dd7a1529d61fa603f numpy-1.16.5-cp36-cp36m-macosx_10_9_x86_64.whl
911d91ffc6688db0454d69318584415f7dfb0fc1b8ac9b549234e39495684230 numpy-1.16.5-cp36-cp36m-manylinux1_i686.whl
ceb353e3ae840ce76256935b18c17236ca808509f231f41d5173d7b2680d5e77 numpy-1.16.5-cp36-cp36m-manylinux1_x86_64.whl
e6ce7c0051ed5443f8343da2a14580aa438822ae6526900332c4564f371d2aaf numpy-1.16.5-cp36-cp36m-win32.whl
9a2b950bca9faca0145491ae9fd214c432f2b1e36783399bc2c3732e7bcc94f4 numpy-1.16.5-cp36-cp36m-win_amd64.whl
00836128feaf9a7c7fedeea05ad593e7965f523d23fe3ffbf20cfffd88e9f2b1 numpy-1.16.5-cp37-cp37m-macosx_10_9_x86_64.whl
3d6a354bb1a1ce2cabd47e0bdcf25364322fb55a29efb59f76944d7ee546d8b6 numpy-1.16.5-cp37-cp37m-manylinux1_i686.whl
f7fb27c0562206787011cf299c03f663c604b58a35a9c2b5218ba6485a17b145 numpy-1.16.5-cp37-cp37m-manylinux1_x86_64.whl
46469e7fcb689036e72ce61c3d432ed35eb4c71b5119e894845b434b0fae5813 numpy-1.16.5-cp37-cp37m-win32.whl
fb207362394567343d84c0462ec3ba203a21c78be9a0fdbb94982e76859ec37e numpy-1.16.5-cp37-cp37m-win_amd64.whl
2b63c414fb43a4f0cb69b29b7e9d48275af0dbb5b1ffd2f2de99c4df9967e151 numpy-1.16.5.tar.gz
8bb452d94e964b312205b0de1238dd7209da452343653ab214b5d681780e7a0c numpy-1.16.5.zip
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.
A total of 17 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
A total of 24 pull requests were merged for this release.
PyMem_Del
...random.permutation(x)
when x is a string.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
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
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.8b2 should work with the released source packages, but there are no
future guarantees.
Downstream developers should use Cython >= 0.29.11 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.
A new extensible random
module along with four selectable random number generators <random.BitGenerators>
and improved seeding designed for use in parallel
processes has been added. The currently available bit generators are MT19937 <random.mt19937.MT19937>
, PCG64 <random.pcg64.PCG64>
, Philox <random.philox.Philox>
, and SFC64 <random.sfc64.SFC64>
. See below under
New Features.
NumPy's FFT <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. 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.
numpy.errstate
is now also a function decoratornumpy.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
.
numpy.distutils.exec_command
and temp_file_name
The internal use of these functions has been refactored and there are better
alternatives. Replace exec_command
with subprocess.Popen
and
temp_file_name <numpy.distutils.exec_command>
with tempfile.mkstemp
.
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 arraysThe behavior of numpy.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
.
numpy.broadcast_arrays
will warnCommonly 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.
Note that for the C-side buffer protocol such an array will return a
readonly buffer immediately unless a writable buffer is requested. If
a writeable buffer is requested a warning will be given. When using
cython, the const
qualifier should be used with such arrays to avoid
the warning (e.g. cdef const double[::1] view
).
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"
(consistently with [(name, dtype, n)]
/ "ntype"
with n>1
, which is already equivalent to [(name, dtype, (n,)]
/ "(n,)type"
).
float16
subnormal roundingCasting 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.
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 itselfReturning the mask itself was unsafe, as it could be reshaped in place which
would violate expectations of the masked array code. The behavior of mask <ma.MaskedArray.mask>
is now consistent with data <ma.MaskedArray.data>
,
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.
__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 take
, choose
, 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.
The functions load
, and 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>
_.
Due to bugs in the application of log
to random floating point numbers,
the stream may change when sampling from ~RandomState.beta
, ~RandomState.binomial
,
~RandomState.laplace
, ~RandomState.logistic
, ~RandomState.logseries
or
~RandomState.multinomial
if a 0
is generated in the underlying MT19937 <~numpy.random.mt11937.MT19937>
random stream. There is a 1
in
:math:10^{53}
chance of this occurring, 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 numpy.inf
or
numpy.nan
) is now dropped.
i0
now always returns a result with the same shape as the inputPreviously, 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.
can_cast
no longer assumes all unsafe casting is allowedPreviously, 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 <ndarray.astype>
method.
ndarray.flags.writeable
can be switched to true slightly more oftenIn 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 ndarray.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.
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);
numpy.random
module with selectable random number generatorsA new extensible numpy.random
module along with four selectable random number
generators and improved seeding designed for use in parallel processes has been
added. The currently available :ref:Bit Generators <bit_generator>
are
~mt19937.MT19937
, ~pcg64.PCG64
, ~philox.Philox
, and ~sfc64.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. More information is available in
the :ref:API change description <new-or-different>
and in the top-level view <numpy.random>
documentation.
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.
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.
numpy.distutils
now uses an environment variable, comma-separated and case
insensitive, to determine the detection order for LAPACK libraries.
By default NPY_LAPACK_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.
ufunc.reduce
and related functions now accept a where
maskufunc.reduce
, sum
, prod
, min
, 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 min
). For instance, the equivalent of
nansum
would be np.sum(a, where=~np.isnan(a))
.
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 :math: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>
_.
packbits
and unpackbits
accept an order
keywordThe order
keyword defaults to big
, and will order the bits
accordingly. For 'order=big'
3 will become [0, 0, 0, 0, 0, 0, 1, 1]
,
and [1, 1, 0, 0, 0, 0, 0, 0]
for order=little
unpackbits
now accepts a count
parametercount
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.
linalg.svd
and linalg.pinv
can be faster on hermitian inputsThese functions now accept a hermitian
argument, matching the one added
to linalg.matrix_rank
in 1.14.0.
timedelta64
operandsThe divmod operator now handles two timedelta64
operands, with
type signature mm->qm
.
fromfile
now takes an offset
argumentThis 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
.
pad
This mode pads an array to a desired shape without initializing the new
entries.
empty_like
and related functions now accept a shape
argumentempty_like
, full_like
, ones_like
and 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.
as_integer_ratio
to match the builtin floatThis returns a (numerator, denominator) pair, which can be used to construct a
fractions.Fraction
.
dtype
objects can be indexed with multiple fields namesarr.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 namesA new format version of 3.0 has been introduced, which enables structured types
with non-latin1 field names. This is used automatically when needed.
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.
fft
module by the pocketfft libraryBoth 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
:math:O(N log N)
run time complexity instead of deteriorating towards
:math: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.
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 decoratorCurrently, 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 implementationfloat32 implementation of exp
and log
now benefit from AVX2/AVX512
instruction set which are detected during runtime. exp
has a max ulp
error of 2.52 and log
has a max ulp error or 3.83.
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 robustlyIn some cases where interp
would previously return nan
, it now
returns an appropriate infinity.
fromfile
, tofile
and ndarray.dump
fromfile
, ndarray.ndarray.tofile
and ndarray.dump
now support
the pathlib.Path
type for the file
/fid
parameter.
isnan
, isinf
, and isfinite
ufuncs for bool and int typesThe boolean and integer types are incapable of storing nan
and inf
values,
which allows us to provide specialized ufuncs that are up to 250x faster than
the previous approach.
isfinite
supports datetime64
and timedelta64
typesPreviously, isfinite
used to raise a TypeError
on being used on these
two types.
nan_to_num
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.
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 methodsThese 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
objectsIn general, this handles object arrays more gracefully, and avoids floating-
point operations if exact arithmetic types are used.
matmul
It is now possible to use 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
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 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
__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
lib.recfunctions.structured_to_unstructured
does not squeeze single-field viewsPreviously 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 hoodThis 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:
nan
to mean "do not clip" as one or both bounds. This didn't workout
argument is passed. Usingcasting="unsafe"
explicitly will silence this warning.Additionally, there are some corner cases with behavior changes:
max < min
has changed to be more consistent across dtypes, butmin
and max
take part in promotion rules like they do in all__array_interface__
offset now works as documentedThe interface may use an offset
value that was mistakenly ignored.
savez
set to 3 for force zip64
flagsavez
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.
KeyError
not ValueError
arr['bad_field']
on a structured type raises KeyError
, for consistency
with dict['bad_field']
.
5ac469e3c2cd9b34c2a906d48544f491 numpy-1.17.0-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
526c60c36c61b7d30e6a50ffad3e81a2 numpy-1.17.0-cp35-cp35m-manylinux1_i686.whl
71066029b28fa03b897fd960be6dc6a9 numpy-1.17.0-cp35-cp35m-manylinux1_x86_64.whl
ab16f4b7f83e64113bf118ae3a9414b9 numpy-1.17.0-cp35-cp35m-win32.whl
e919d45495558d93275ef4ab724f767a numpy-1.17.0-cp35-cp35m-win_amd64.whl
101e88a9870a5046536f71d77d0a7f5c numpy-1.17.0-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
c996484b56aefecfe3626bcaca88a187 numpy-1.17.0-cp36-cp36m-manylinux1_i686.whl
4db1ecda4fbc202722774599cb434378 numpy-1.17.0-cp36-cp36m-manylinux1_x86_64.whl
feeecc8ea0bbc37b2f0be447b32a478f numpy-1.17.0-cp36-cp36m-win32.whl
b7efb94a9cf4cc864ea546fb21a4d6bf numpy-1.17.0-cp36-cp36m-win_amd64.whl
c6501eed55a840b2c81b211d6cf5065e numpy-1.17.0-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
49ae9d7440e5dbabf3e02eba5b4bb8cd numpy-1.17.0-cp37-cp37m-manylinux1_i686.whl
a245e8fc884fcd6ad1c53c322496cace numpy-1.17.0-cp37-cp37m-manylinux1_x86_64.whl
0da9af1ac3832ae8b94f5fdce31c8c7d numpy-1.17.0-cp37-cp37m-win32.whl
1ffa1bc110de363748a849a35126d9ff numpy-1.17.0-cp37-cp37m-win_amd64.whl
c48b2ad785f82cdfe28c907ce35e2a71 numpy-1.17.0.tar.gz
aed49b31bcb44ec73b8155be78566135 numpy-1.17.0.zip
910d2272403c2ea8a52d9159827dc9f7c27fb4b263749dca884e2e4a8af3b302 numpy-1.17.0-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
9ce8300950f2f1d29d0e49c28ebfff0d2f1e2a7444830fbb0b913c7c08f31511 numpy-1.17.0-cp35-cp35m-manylinux1_i686.whl
7724e9e31ee72389d522b88c0d4201f24edc34277999701ccd4a5392e7d8af61 numpy-1.17.0-cp35-cp35m-manylinux1_x86_64.whl
0cdd229a53d2720d21175012ab0599665f8c9588b3b8ffa6095dd7b90f0691dd numpy-1.17.0-cp35-cp35m-win32.whl
5adfde7bd3ee4864536e230bcab1c673f866736698724d5d28c11a4d63672658 numpy-1.17.0-cp35-cp35m-win_amd64.whl
464b1c48baf49e8505b1bb754c47a013d2c305c5b14269b5c85ea0625b6a988a numpy-1.17.0-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
eb0fc4a492cb896346c9e2c7a22eae3e766d407df3eb20f4ce027f23f76e4c54 numpy-1.17.0-cp36-cp36m-manylinux1_i686.whl
9588c6b4157f493edeb9378788dcd02cb9e6a6aeaa518b511a1c79d06cbd8094 numpy-1.17.0-cp36-cp36m-manylinux1_x86_64.whl
03e311b0a4c9f5755da7d52161280c6a78406c7be5c5cc7facfbcebb641efb7e numpy-1.17.0-cp36-cp36m-win32.whl
c3ab2d835b95ccb59d11dfcd56eb0480daea57cdf95d686d22eff35584bc4554 numpy-1.17.0-cp36-cp36m-win_amd64.whl
f4e4612de60a4f1c4d06c8c2857cdcb2b8b5289189a12053f37d3f41f06c60d0 numpy-1.17.0-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
312bb18e95218bedc3563f26fcc9c1c6bfaaf9d453d15942c0839acdd7e4c473 numpy-1.17.0-cp37-cp37m-manylinux1_i686.whl
8d36f7c53ae741e23f54793ffefb2912340b800476eb0a831c6eb602e204c5c4 numpy-1.17.0-cp37-cp37m-manylinux1_x86_64.whl
ec0c56eae6cee6299f41e780a0280318a93db519bbb2906103c43f3e2be1206c numpy-1.17.0-cp37-cp37m-win32.whl
be39cca66cc6806652da97103605c7b65ee4442c638f04ff064a7efd9a81d50a numpy-1.17.0-cp37-cp37m-win_amd64.whl
47b7b6145e7ba5918ce26be25999b6d4b35cf9fbfdf46b7da50090ffdb020445 numpy-1.17.0.tar.gz
951fefe2fb73f84c620bec4e001e80a80ddaa1b84dce244ded7f1e0cbe0ed34a numpy-1.17.0.zip
.. currentmodule:: numpy
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.8b2 should work with the released source packages, but there are no
future guarantees.
Downstream developers should use Cython >= 0.29.11 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.
A new extensible random
module along with four selectable random number generators <random.BitGenerators>
and improved seeding designed for use in parallel
processes has been added. The currently available bit generators are MT19937 <random.mt19937.MT19937>
, PCG64 <random.pcg64.PCG64>
, Philox <random.philox.Philox>
, and SFC64 <random.sfc64.SFC64>
. See below under
New Features.
NumPy's FFT <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. 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.
numpy.errstate
is now also a function decoratornumpy.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
.
numpy.distutils.exec_command
and temp_file_name
The internal use of these functions has been refactored and there are better
alternatives. Replace exec_command
with subprocess.Popen
and
temp_file_name <numpy.distutils.exec_command>
with tempfile.mkstemp
.
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 arraysThe behavior of numpy.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
.
numpy.broadcast_arrays
will warnCommonly 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.
Note that for the C-side buffer protocol such an array will return a
readonly buffer immediately unless a writable buffer is requested. If
a writeable buffer is requested a warning will be given. When using
cython, the const
qualifier should be used with such arrays to avoid
the warning (e.g. cdef const double[::1] view
).
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"
(consistently with [(name, dtype, n)]
/ "ntype"
with n>1
, which is already equivalent to [(name, dtype, (n,)]
/ "(n,)type"
).
float16
subnormal roundingCasting 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.
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 itselfReturning the mask itself was unsafe, as it could be reshaped in place which
would violate expectations of the masked array code. The behavior of mask <ma.MaskedArray.mask>
is now consistent with data <ma.MaskedArray.data>
,
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.
__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 take
, choose
, 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.
The functions load
, and 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>
_.
.. currentmodule:: numpy.random.mtrand
Due to bugs in the application of log
to random floating point numbers,
the stream may change when sampling from ~RandomState.beta
, ~RandomState.binomial
,
~RandomState.laplace
, ~RandomState.logistic
, ~RandomState.logseries
or
~RandomState.multinomial
if a 0
is generated in the underlying MT19937 <~numpy.random.mt11937.MT19937>
random stream. There is a 1
in
:math:10^{53}
chance of this occurring, 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 numpy.inf
or
numpy.nan
) is now dropped.
.. currentmodule:: numpy
i0
now always returns a result with the same shape as the inputPreviously, 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.
can_cast
no longer assumes all unsafe casting is allowedPreviously, 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 <ndarray.astype>
method.
ndarray.flags.writeable
can be switched to true slightly more oftenIn 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 ndarray.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.
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);
.. currentmodule:: numpy.random
numpy.random
module with selectable random number generatorsA new extensible numpy.random
module along with four selectable random number
generators and improved seeding designed for use in parallel processes has been
added. The currently available :ref:Bit Generators <bit_generator>
are
~mt19937.MT19937
, ~pcg64.PCG64
, ~philox.Philox
, and ~sfc64.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. More information is available in
the :ref:API change description <new-or-different>
and in the top-level view <numpy.random>
documentation.
.. currentmodule:: numpy
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.
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.
numpy.distutils
now uses an environment variable, comma-separated and case
insensitive, to determine the detection order for LAPACK libraries.
By default NPY_LAPACK_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.
ufunc.reduce
and related functions now accept a where
maskufunc.reduce
, sum
, prod
, min
, 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 min
). For instance, the equivalent of
nansum
would be np.sum(a, where=~np.isnan(a))
.
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 :math: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>
_.
packbits
and unpackbits
accept an order
keywordThe order
keyword defaults to big
, and will order the bits
accordingly. For 'order=big'
3 will become [0, 0, 0, 0, 0, 0, 1, 1]
,
and [1, 1, 0, 0, 0, 0, 0, 0]
for order=little
unpackbits
now accepts a count
parametercount
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.
linalg.svd
and linalg.pinv
can be faster on hermitian inputsThese functions now accept a hermitian
argument, matching the one added
to linalg.matrix_rank
in 1.14.0.
timedelta64
operandsThe divmod operator now handles two timedelta64
operands, with
type signature mm->qm
.
fromfile
now takes an offset
argumentThis 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
.
pad
This mode pads an array to a desired shape without initializing the new
entries.
empty_like
and related functions now accept a shape
argumentempty_like
, full_like
, ones_like
and 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.
as_integer_ratio
to match the builtin floatThis returns a (numerator, denominator) pair, which can be used to construct a
fractions.Fraction
.
dtype
objects can be indexed with multiple fields namesarr.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 namesA new format version of 3.0 has been introduced, which enables structured types
with non-latin1 field names. This is used automatically when needed.
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.
fft
module by the pocketfft libraryBoth 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
:math:O(N log N)
run time complexity instead of deteriorating towards
:math: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.
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 decoratorCurrently, 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 implementationfloat32 implementation of exp
and log
now benefit from AVX2/AVX512
instruction set which are detected during runtime. exp
has a max ulp
error of 2.52 and log
has a max ulp error or 3.83.
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 robustlyIn some cases where interp
would previously return nan
, it now
returns an appropriate infinity.
fromfile
, tofile
and ndarray.dump
fromfile
, ndarray.ndarray.tofile
and ndarray.dump
now support
the pathlib.Path
type for the file
/fid
parameter.
isnan
, isinf
, and isfinite
ufuncs for bool and int typesThe boolean and integer types are incapable of storing nan
and inf
values,
which allows us to provide specialized ufuncs that are up to 250x faster than
the previous approach.
isfinite
supports datetime64
and timedelta64
typesPreviously, isfinite
used to raise a TypeError
on being used on these
two types.
nan_to_num
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.
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 methodsThese 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
objectsIn general, this handles object arrays more gracefully, and avoids floating-
point operations if exact arithmetic types are used.
matmul
It is now possible to use 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
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 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
__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
lib.recfunctions.structured_to_unstructured
does not squeeze single-field viewsPreviously 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 hoodThis 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:
nan
to mean "do not clip" as one or both bounds. This didn't workout
argument is passed. Usingcasting="unsafe"
explicitly will silence this warning.Additionally, there are some corner cases with behavior changes:
max < min
has changed to be more consistent across dtypes, butmin
and max
take part in promotion rules like they do in all__array_interface__
offset now works as documentedThe interface may use an offset
value that was mistakenly ignored.
savez
set to 3 for force zip64
flagsavez
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.
KeyError
not ValueError
arr['bad_field']
on a structured type raises KeyError
, for consistency
with dict['bad_field']
.
613b7ffe7290d900c7b0c056e176b4d0 numpy-1.17.0rc2-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
d3c95a816ee885b30acda83c0a6457e5 numpy-1.17.0rc2-cp35-cp35m-manylinux1_i686.whl
6ac9206b01562e9aadb8603931b63224 numpy-1.17.0rc2-cp35-cp35m-manylinux1_x86_64.whl
6afd04a55d7e00a8ed2e1248669f8cd9 numpy-1.17.0rc2-cp35-cp35m-win32.whl
519e154eab6bb7b1a01a93903c620ab4 numpy-1.17.0rc2-cp35-cp35m-win_amd64.whl
736b9191f39206efc120e38e6a10f6d1 numpy-1.17.0rc2-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
dbb2fbd75a414231094bd867b7fbce05 numpy-1.17.0rc2-cp36-cp36m-manylinux1_i686.whl
424803fe4aaa14de85e15c1fe58dc2ae numpy-1.17.0rc2-cp36-cp36m-manylinux1_x86_64.whl
6c80d6269b685d986d9a5126d230384c numpy-1.17.0rc2-cp36-cp36m-win32.whl
06b6774497e40d0e0e640facd6ff079b numpy-1.17.0rc2-cp36-cp36m-win_amd64.whl
d2d450902993a807616cd1bdfb0d30c6 numpy-1.17.0rc2-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
d10e80597505b0940329bcb72a9cc530 numpy-1.17.0rc2-cp37-cp37m-manylinux1_i686.whl
6a833a3e10fd4746d690650e549205ea numpy-1.17.0rc2-cp37-cp37m-manylinux1_x86_64.whl
77d6f0cbd035c476d7032c4f032d1195 numpy-1.17.0rc2-cp37-cp37m-win32.whl
ab29ac43971aae7120b563ba079e7469 numpy-1.17.0rc2-cp37-cp37m-win_amd64.whl
4ded0046dedc142f3b9d1e8b89d2d11b numpy-1.17.0rc2.tar.gz
8d0075fdf1de498fe27a0257c07029ea numpy-1.17.0rc2.zip
724efe307f5b6df931559fcd3a0ba0e655b1955354361dec039dc5506829a1af numpy-1.17.0rc2-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
45bc7b87ddbc2864ab528edf547201be142077caeb1916bca9aac6e5846dcf0e numpy-1.17.0rc2-cp35-cp35m-manylinux1_i686.whl
2716333552115eeca9d774556644b2df83073d85d9b30700cbe24b7e2f58c6f3 numpy-1.17.0rc2-cp35-cp35m-manylinux1_x86_64.whl
58f890a52716bbbb025d8f3b77f91102de7a068d214a7dea97562d8d86a1b12a numpy-1.17.0rc2-cp35-cp35m-win32.whl
0ba8479eab6924bc9d17832a0142e54cb69ea323b544e681c051e5f85a77de84 numpy-1.17.0rc2-cp35-cp35m-win_amd64.whl
0f5b37e96989a231a9a63e4aed734d268d1f244b237a44b8703b5919c2c893a2 numpy-1.17.0rc2-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
5003389ca06659156c98215502696f7f1e85a9e1355b4121fd6fa5e098b0e062 numpy-1.17.0rc2-cp36-cp36m-manylinux1_i686.whl
8e076ac6ad2b602ffa6c7e82801c280df9680f1e11c720b550172953ebb80abb numpy-1.17.0rc2-cp36-cp36m-manylinux1_x86_64.whl
92009e95da7d3337fb99621a09089b7770551273a4749f233843d2d6bac54d2a numpy-1.17.0rc2-cp36-cp36m-win32.whl
8d5a1b0b31a506e61525cf801782ba4f565613278c65edfa849eb2abb7f963cc numpy-1.17.0rc2-cp36-cp36m-win_amd64.whl
4c88a3e02a00f05a27bf9b033733c274fb3cb1ffd9eeec4490a650c10ba889ca numpy-1.17.0rc2-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
baa9da76c108a27092f2747615af1a837c117c16f8704b25b993d3ef9a6b910c numpy-1.17.0rc2-cp37-cp37m-manylinux1_i686.whl
e85371de8d4ba14ba077b1b856dd7d911605de0c977e17aaae36d597499699c9 numpy-1.17.0rc2-cp37-cp37m-manylinux1_x86_64.whl
d58de04dd219b92c6fb8cae34cc49aa92296c536b2d271bd09d4f704178224fd numpy-1.17.0rc2-cp37-cp37m-win32.whl
f13346f932c0ea879df223264a438c75745632c2e0e4144f83824b7692ffe605 numpy-1.17.0rc2-cp37-cp37m-win_amd64.whl
b5e0482fc55f8bbf8eba6f9c23084cd781d307851c8e5b3336fb6a5955a08d9f numpy-1.17.0rc2.tar.gz
a4153fe85cf92a796022b81b138000160dea840cad13b7d1db67cfec594ece23 numpy-1.17.0rc2.zip