Releases: numpy/numpy
v1.15.0rc2
==========================
NumPy 1.15.0 Release Notes
NumPy 1.15.0 is a release with an unusual number of cleanups, many deprecations
of old functions, and improvements to many existing functions. Please read the
detailed descriptions below to see if you are affected.
For testing, we have switched to pytest as a replacement for the no longer
maintained nose framework. The old nose based interface remains for downstream
projects who may still be using it.
The Python versions supported by this release are 2.7, 3.4-3.7. The wheels are
linked with OpenBLAS v0.3.0, which should fix some of the linalg problems
reported for NumPy 1.14.
Highlights
- NumPy has switched to pytest for testing.
- A new
numpy.printoptions
context manager. - Many improvements to the histogram functions.
- Support for unicode field names in python 2.7.
- Improved support for PyPy.
- Fixes and improvements to
numpy.einsum
.
New functions
-
numpy.gcd
andnumpy.lcm
, to compute the greatest common divisor and least
common multiple. -
numpy.ma.stack
, thenumpy.stack
array-joining function generalized to
masked arrays. -
numpy.quantile
function, an interface topercentile
without factors of
100 -
numpy.nanquantile
function, an interface tonanpercentile
without
factors of 100 -
numpy.printoptions
, a context manager that sets print options temporarily
for the scope of thewith
block::with np.printoptions(precision=2):
... print(np.array([2.0]) / 3)
[0.67] -
numpy.histogram_bin_edges
, a function to get the edges of the bins used by a
histogram without needing to calculate the histogram. -
C functions
npy_get_floatstatus_barrier
andnpy_clear_floatstatus_barrier
have been added to deal with compiler optimization changing the order of
operations. See below for details.
Deprecations
-
Aliases of builtin
pickle
functions are deprecated, in favor of their
unaliasedpickle.<func>
names:numpy.loads
numpy.core.numeric.load
numpy.core.numeric.loads
numpy.ma.loads
,numpy.ma.dumps
numpy.ma.load
,numpy.ma.dump
- these functions already failed on
python 3 when called with a string.
-
Multidimensional indexing with anything but a tuple is deprecated. This means
that the index list inind = [slice(None), 0]; arr[ind]
should be changed
to a tuple, e.g.,ind = [slice(None), 0]; arr[tuple(ind)]
or
arr[(slice(None), 0)]
. That change is necessary to avoid ambiguity in
expressions such asarr[[[0, 1], [0, 1]]]
, currently interpreted as
arr[array([0, 1]), array([0, 1])]
, that will be interpreted
asarr[array([[0, 1], [0, 1]])]
in the future. -
Imports from the following sub-modules are deprecated, they will be removed
at some future date.numpy.testing.utils
numpy.testing.decorators
numpy.testing.nosetester
numpy.testing.noseclasses
numpy.core.umath_tests
-
Giving a generator to
numpy.sum
is now deprecated. This was undocumented
behavior, but worked. Previously, it would calculate the sum of the generator
expression. In the future, it might return a different result. Use
np.sum(np.from_iter(generator))
or the built-in Pythonsum
instead. -
Users of the C-API should call
PyArrayResolveWriteBackIfCopy
or
PyArray_DiscardWritbackIfCopy
on any array with theWRITEBACKIFCOPY
flag set, before deallocating the array. A deprecation warning will be
emitted if those calls are not used when needed. -
Users of
nditer
should use the nditer object as a context manager
anytime one of the iterator operands is writeable, so that numpy can
manage writeback semantics, or should callit.close()
. A
RuntimeWarning
may be emitted otherwise in these cases. -
The
normed
argument ofnp.histogram
, deprecated long ago in 1.6.0,
now emits aDeprecationWarning
.
Future Changes
- NumPy 1.16 will drop support for Python 3.4.
- NumPy 1.17 will drop support for Python 2.7.
Compatibility notes
Compiled testing modules renamed and made private
The following compiled modules have been renamed and made private:
umath_tests
->_umath_tests
test_rational
->_rational_tests
multiarray_tests
->_multiarray_tests
struct_ufunc_test
->_struct_ufunc_tests
operand_flag_tests
->_operand_flag_tests
The umath_tests
module is still available for backwards compatibility, but
will be removed in the future.
The NpzFile
returned by np.savez
is now a collections.abc.Mapping
This means it behaves like a readonly dictionary, and has a new .values()
method and len()
implementation.
For python 3, this means that .iteritems()
, .iterkeys()
have been
deprecated, and .keys()
and .items()
now return views and not lists.
This is consistent with how the builtin dict
type changed between python 2
and python 3.
Under certain conditions, nditer
must be used in a context manager
When using an numpy.nditer
with the "writeonly"
or "readwrite"
flags, there
are some circumstances where nditer doesn't actually give you a view of the
writable array. Instead, it gives you a copy, and if you make changes to the
copy, nditer later writes those changes back into your actual array. Currently,
this writeback occurs when the array objects are garbage collected, which makes
this API error-prone on CPython and entirely broken on PyPy. Therefore,
nditer
should now be used as a context manager whenever it is used
with writeable arrays, e.g., with np.nditer(...) as it: ...
. You may also
explicitly call it.close()
for cases where a context manager is unusable,
for instance in generator expressions.
Numpy has switched to using pytest instead of nose for testing
The last nose release was 1.3.7 in June, 2015, and development of that tool has
ended, consequently NumPy has now switched to using pytest. The old decorators
and nose tools that were previously used by some downstream projects remain
available, but will not be maintained. The standard testing utilities,
assert_almost_equal
and such, are not be affected by this change except for
the nose specific functions import_nose
and raises
. Those functions are
not used in numpy, but are kept for downstream compatibility.
Numpy no longer monkey-patches ctypes
with __array_interface__
Previously numpy added __array_interface__
attributes to all the integer
types from ctypes
.
np.ma.notmasked_contiguous
and np.ma.flatnotmasked_contiguous
always return lists
This is the documented behavior, but previously the result could be any of
slice, None, or list.
All downstream users seem to check for the None
result from
flatnotmasked_contiguous
and replace it with []
. Those callers will
continue to work as before.
np.squeeze
restores old behavior of objects that cannot handle an axis
argument
Prior to version 1.7.0
, numpy.squeeze
did not have an axis
argument and
all empty axes were removed by default. The incorporation of an axis
argument made it possible to selectively squeeze single or multiple empty axes,
but the old API expectation was not respected because axes could still be
selectively removed (silent success) from an object expecting all empty axes to
be removed. That silent, selective removal of empty axes for objects expecting
the old behavior has been fixed and the old behavior restored.
unstructured void array's .item
method now returns a bytes object
.item
now returns a bytes
object instead of a buffer or byte array.
This may affect code which assumed the return value was mutable, which is no
longer the case.
copy.copy
and copy.deepcopy
no longer turn masked
into an array
Since np.ma.masked
is a readonly scalar, copying should be a no-op. These
functions now behave consistently with np.copy()
.
Multifield Indexing of Structured Arrays will still return a copy
The change that multi-field indexing of structured arrays returns a view
instead of a copy is pushed back to 1.16. A new method
numpy.lib.recfunctions.repack_fields
has been introduced to help mitigate
the effects of this change, which can be used to write code compatible with
both numpy 1.15 and 1.16. For more information on how to update code to account
for this future change see the "accessing multiple fields" section of the
user guide <https://docs.scipy.org/doc/numpy/user/basics.rec.html>
__.
C API changes
New functions npy_get_floatstatus_barrier
and npy_clear_floatstatus_barrier
Functions npy_get_floatstatus_barrier
and npy_clear_floatstatus_barrier
have been added and should be used in place of the npy_get_floatstatus
and
npy_clear_status
functions. Optimizing compilers like GCC 8.1 and Cla...
v1.15.0rc1
==========================
NumPy 1.15.0 Release Notes
NumPy 1.15.0 is a release with an unusual number of cleanups, many deprecations
of old functions, and improvements to many existing functions. Please read the
detailed descriptions below to see if you are affected.
For testing, we have switched to pytest as a replacement for the no longer
maintained nose framework. The old nose based interface remains for downstream
projects who may still be using it.
The Python versions supported by this release are 2.7, 3.4-3.6. The upcoming
3.7 release should also work, but you will need to compile from source using
Cython 0.28.2 or later. The wheels will be linked with OpenBLAS 3.0, which
should fix some of the linalg problems reported for NumPy 1.14.
Highlights
- NumPy has switched to pytest for testing.
- A new
numpy.printoptions
context manager. - Many improvements to the histogram functions.
- Support for unicode field names in python 2.7.
- Improved support for PyPy.
New functions
-
numpy.gcd
andnumpy.lcm
, to compute the greatest common divisor and least
common multiple. -
numpy.ma.stack
, thenumpy.stack
array-joining function generalized to
masked arrays. -
numpy.quantile
function, an interface topercentile
without factors of
100 -
numpy.nanquantile
function, an interface tonanpercentile
without
factors of 100 -
numpy.printoptions
, a context manager that sets print options temporarily
for the scope of thewith
block::with np.printoptions(precision=2):
... print(np.array([2.0]) / 3)
[0.67] -
numpy.histogram_bin_edges
, a function to get the edges of the bins used by a
histogram without needing to calculate the histogram. -
C functions
npy_get_floatstatus_barrier
andnpy_clear_floatstatus_barrier
have been added to deal with compiler optimization changing the order of
operations. See below for details.
Deprecations
-
Aliases of builtin
pickle
functions are deprecated, in favor of their
unaliasedpickle.<func>
names:numpy.loads
numpy.core.numeric.load
numpy.core.numeric.loads
numpy.ma.loads
,numpy.ma.dumps
numpy.ma.load
,numpy.ma.dump
- these functions already failed on
python 3 when called with a string.
-
Multidimensional indexing with anything but a tuple is deprecated. This means
that the index list inind = [slice(None), 0]; arr[ind]
should be changed
to a tuple, e.g.,ind = [slice(None), 0]; arr[tuple(ind)]
or
arr[(slice(None), 0)]
. That change is necessary to avoid ambiguity in
expressions such asarr[[[0, 1], [0, 1]]]
, currently interpreted as
arr[array([0, 1]), array([0, 1])]
, that will be interpreted
asarr[array([[0, 1], [0, 1]])]
in the future. -
Imports from the following sub-modules are deprecated, they will be removed
at some future date.numpy.testing.utils
numpy.testing.decorators
numpy.testing.nosetester
numpy.testing.noseclasses
numpy.core.umath_tests
-
Giving a generator to
numpy.sum
is now deprecated. This was undocumented
behavior, but worked. Previously, it would calculate the sum of the generator
expression. In the future, it might return a different result. Use
np.sum(np.from_iter(generator))
or the built-in Pythonsum
instead. -
Users of the C-API should call
PyArrayResolveWriteBackIfCopy
or
PyArray_DiscardWritbackIfCopy
on any array with theWRITEBACKIFCOPY
flag set, before deallocating the array. A deprecation warning will be
emitted if those calls are not used when needed. -
Users of
numpy.nditer
should use the nditer object as a context manager
whenever one of the iterator operands is writeable so that numpy can manage
writeback semantics, or alternately, one can callit.close()
to trigger a
writeback. ARuntimeWarning
will otherwise be raised in those cases. Users
of the C-API should callNpyIter_Close
beforeNpyIter_Deallocate
. -
Users of
nditer
should use the nditer object as a context manager
anytime one of the iterator operands is writeable, so that numpy can
manage writeback semantics, or should callit.close()
. A
RuntimeWarning
may be emitted otherwise in these cases. -
The
normed
argument ofnp.histogram
, deprecated long ago in 1.6.0,
now emits aDeprecationWarning
.
Future Changes
- NumPy 1.16 will drop support for Python 3.4.
- NumPy 1.17 will drop support for Python 2.7.
Compatibility notes
Compiled testing modules renamed and made private
The following compiled modules have been renamed and made private:
umath_tests
->_umath_tests
test_rational
->_rational_tests
multiarray_tests
->_multiarray_tests
struct_ufunc_test
->_struct_ufunc_tests
operand_flag_tests
->_operand_flag_tests
The umath_tests
module is still available for backwards compatibility, but
will be removed in the future.
The NpzFile
returned by np.savez
is now a collections.abc.Mapping
This means it behaves like a readonly dictionary, and has a new .values()
method and len()
implementation.
For python 3, this means that .iteritems()
, .iterkeys()
have been
deprecated, and .keys()
and .items()
now return views and not lists.
This is consistent with how the builtin dict
type changed between python 2
and python 3.
Under certain conditions, nditer
must be used in a context manager
When using an numpy.nditer
with the "writeonly"
or "readwrite"
flags, there
are some circumstances where nditer doesn't actually give you a view of the
writable array. Instead, it gives you a copy, and if you make changes to the
copy, nditer later writes those changes back into your actual array. Currently,
this writeback occurs when the array objects are garbage collected, which makes
this API error-prone on CPython and entirely broken on PyPy. Therefore,
nditer
should now be used as a context manager whenever it is used
with writeable arrays, e.g., with np.nditer(...) as it: ...
. You may also
explicitly call it.close()
for cases where a context manager is unusable,
for instance in generator expressions.
Numpy has switched to using pytest instead of nose for testing
The last nose release was 1.3.7 in June, 2015, and development of that tool has
ended, consequently NumPy has now switched to using pytest. The old decorators
and nose tools that were previously used by some downstream projects remain
available, but will not be maintained. The standard testing utilities,
assert_almost_equal
and such, are not be affected by this change except for
the nose specific functions import_nose
and raises
. Those functions are
not used in numpy, but are kept for downstream compatibility.
Numpy no longer monkey-patches ctypes
with __array_interface__
Previously numpy added __array_interface__
attributes to all the integer
types from ctypes
.
np.ma.notmasked_contiguous
and np.ma.flatnotmasked_contiguous
always return lists
This is the documented behavior, but previously the result could be any of
slice, None, or list.
All downstream users seem to check for the None
result from
flatnotmasked_contiguous
and replace it with []
. Those callers will
continue to work as before.
np.squeeze
restores old behavior of objects that cannot handle an axis
argument
Prior to version 1.7.0
, numpy.squeeze
did not have an axis
argument and
all empty axes were removed by default. The incorporation of an axis
argument made it possible to selectively squeeze single or multiple empty axes,
but the old API expectation was not respected because axes could still be
selectively removed (silent success) from an object expecting all empty axes to
be removed. That silent, selective removal of empty axes for objects expecting
the old behavior has been fixed and the old behavior restored.
unstructured void array's .item
method now returns a bytes object
.item
now returns a bytes
object instead of a buffer or byte array.
This may affect code which assumed the return value was mutable, which is no
longer the case.
copy.copy
and copy.deepcopy
no longer turn masked
into an array
Since np.ma.masked
is a readonly scalar, copying should be a no-op. These
functions now behave consistently with np.copy()
.
Multifield Indexing of Structured Arrays will still return a copy
The change that multi-field indexing of structured arrays returns a view
instead of a copy is pushed back to 1.16. A new method
numpy.lib.recfunctions.repack_fields
has been introduced to help mitigate
the effects of this change, which can be used to write code compatible with
both numpy 1.15 and 1.16. For more information on how to update code to account
for this future change see the "accessing multiple fields" section of the
`user guide <https://docs.scipy.org/doc/nu...
v1.14.5
NumPy 1.14.5 Release Notes
This is a bugfix release for bugs reported following the 1.14.4 release. The
most significant fixes are:
- fixes for compilation errors on alpine and NetBSD
The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.28.2 and should work for the upcoming Python 3.7.
Contributors
A total of 1 person contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Charles Harris
Pull requests merged
A total of 2 pull requests were merged for this release.
#11274 <https://github.com/numpy/numpy/pull/11274>
__: BUG: Correct use of NPY_UNUSED.#11294 <https://github.com/numpy/numpy/pull/11294>
__: BUG: Remove extra trailing parentheses.
Checksums
MD5
429afa5c8720016214a79779f774d3a4 numpy-1.14.5-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
de8f5c6c0e46eedf8d92c1a7ba3fccf7 numpy-1.14.5-cp27-cp27m-manylinux1_i686.whl
6315999b5142d22ce7bd9e74b1b4e3ab numpy-1.14.5-cp27-cp27m-manylinux1_x86_64.whl
397a64608b5809983ff07842ebe0d353 numpy-1.14.5-cp27-cp27mu-manylinux1_i686.whl
6759e2f4bd57727f1ab9d6c9611b3f9d numpy-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl
2d5609f384fccf9fe4e6172dd4fed3d0 numpy-1.14.5-cp27-none-win32.whl
c0d5fc38ab45f19cbd12200ff4ea45dd numpy-1.14.5-cp27-none-win_amd64.whl
0a77f36af749e5c3546c3d310f571256 numpy-1.14.5-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ae15c8254a4a3ebfc45894617ce030a2 numpy-1.14.5-cp34-cp34m-manylinux1_i686.whl
78c67b4b4f8f3f8bd9c2f897f9d40f60 numpy-1.14.5-cp34-cp34m-manylinux1_x86_64.whl
5263ec59028d508992c15263993698d0 numpy-1.14.5-cp34-none-win32.whl
193365c9f1bb2086b47afe9c797ff415 numpy-1.14.5-cp34-none-win_amd64.whl
90caeba061eec5dbebadad5c8bad3a0c numpy-1.14.5-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
129848206c41b68071fe9cb469a66846 numpy-1.14.5-cp35-cp35m-manylinux1_i686.whl
395c0058b7ec0ae0cad1e052362e9aeb numpy-1.14.5-cp35-cp35m-manylinux1_x86_64.whl
a542ea0d9047df0da8ab69e90d60dbdc numpy-1.14.5-cp35-none-win32.whl
c5c86e11b5071c0ca0bb11f6a84f20e6 numpy-1.14.5-cp35-none-win_amd64.whl
350120bd20a0a45857b4c39e901af41b numpy-1.14.5-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
5a0682a984fcf6f87a9f10760d896b70 numpy-1.14.5-cp36-cp36m-manylinux1_i686.whl
c5596c3d232345d0f0176cd02e6efe92 numpy-1.14.5-cp36-cp36m-manylinux1_x86_64.whl
c0306cbad68f8084e977121ba104b634 numpy-1.14.5-cp36-none-win32.whl
01b5bd7897e1306660c7ea6a30391cc4 numpy-1.14.5-cp36-none-win_amd64.whl
e3189ee851c3a0e2e6e4c6e80a711ec8 numpy-1.14.5.tar.gz
02d940a6931703de2c41fa5590ac7e98 numpy-1.14.5.zip
SHA256
e1864a4e9f93ddb2dc6b62ccc2ec1f8250ff4ac0d3d7a15c8985dd4e1fbd6418 numpy-1.14.5-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
085afac75bbc97a096744fcfc97a4b321c5a87220286811e85089ae04885acdd numpy-1.14.5-cp27-cp27m-manylinux1_i686.whl
6c57f973218b776195d0356e556ec932698f3a563e2f640cfca7020086383f50 numpy-1.14.5-cp27-cp27m-manylinux1_x86_64.whl
589336ba5199c8061239cf446ee2f2f1fcc0c68e8531ee1382b6fc0c66b2d388 numpy-1.14.5-cp27-cp27mu-manylinux1_i686.whl
5edf1acc827ed139086af95ce4449b7b664f57a8c29eb755411a634be280d9f2 numpy-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl
6b82b81c6b3b70ed40bc6d0b71222ebfcd6b6c04a6e7945a936e514b9113d5a3 numpy-1.14.5-cp27-none-win32.whl
385f1ce46e08676505b692bfde918c1e0b350963a15ef52d77691c2cf0f5dbf6 numpy-1.14.5-cp27-none-win_amd64.whl
758d1091a501fd2d75034e55e7e98bfd1370dc089160845c242db1c760d944d9 numpy-1.14.5-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
c725d11990a9243e6ceffe0ab25a07c46c1cc2c5dc55e305717b5afe856c9608 numpy-1.14.5-cp34-cp34m-manylinux1_i686.whl
07379fe0b450f6fd6e5934a9bc015025bb4ce1c8fbed3ca8bef29328b1bc9570 numpy-1.14.5-cp34-cp34m-manylinux1_x86_64.whl
9e1f53afae865cc32459ad211493cf9e2a3651a7295b7a38654ef3d123808996 numpy-1.14.5-cp34-none-win32.whl
4d278c2261be6423c5e63d8f0ceb1b0c6db3ff83f2906f4b860db6ae99ca1bb5 numpy-1.14.5-cp34-none-win_amd64.whl
d696a8c87315a83983fc59dd27efe034292b9e8ad667aeae51a68b4be14690d9 numpy-1.14.5-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
2df854df882d322d5c23087a4959e145b953dfff2abe1774fec4f639ac2f3160 numpy-1.14.5-cp35-cp35m-manylinux1_i686.whl
baadc5f770917ada556afb7651a68176559f4dca5f4b2d0947cd15b9fb84fb51 numpy-1.14.5-cp35-cp35m-manylinux1_x86_64.whl
2d6481c6bdab1c75affc0fc71eb1bd4b3ecef620d06f2f60c3f00521d54be04f numpy-1.14.5-cp35-none-win32.whl
51c5dcb51cf88b34b7d04c15f600b07c6ccbb73a089a38af2ab83c02862318da numpy-1.14.5-cp35-none-win_amd64.whl
8b8dcfcd630f1981f0f1e3846fae883376762a0c1b472baa35b145b911683b7b numpy-1.14.5-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
9d69967673ab7b028c2df09cae05ba56bf4e39e3cb04ebe452b6035c3b49848e numpy-1.14.5-cp36-cp36m-manylinux1_i686.whl
8622db292b766719810e0cb0f62ef6141e15fe32b04e4eb2959888319e59336b numpy-1.14.5-cp36-cp36m-manylinux1_x86_64.whl
97fa8f1dceffab782069b291e38c4c2227f255cdac5f1e3346666931df87373e numpy-1.14.5-cp36-none-win32.whl
381ad13c30cd1d0b2f3da8a0c1a4aa697487e8bb0e9e0cbeb7439776bcb645f8 numpy-1.14.5-cp36-none-win_amd64.whl
1b4a02758fb68a65ea986d808867f1d6383219c234aef553a8741818e795b529 numpy-1.14.5.tar.gz
a4a433b3a264dbc9aa9c7c241e87c0358a503ea6394f8737df1683c7c9a102ac numpy-1.14.5.zip
v1.14.4
==========================
NumPy 1.14.4 Release Notes
This is a bugfix release for bugs reported following the 1.14.3 release. The
most significant fixes are:
-
fixes for compiler instruction reordering that resulted in NaN's not being
properly propagated innp.max
andnp.min
, -
fixes for bus faults on SPARC and older ARM due to incorrect alignment
checks.
There are also improvements to printing of long doubles on PPC platforms. All
is not yet perfect on that platform, the whitespace padding is still incorrect
and is to be fixed in numpy 1.15, consequently NumPy still fails some
printing-related (and other) unit tests on ppc systems. However, the printed
values are now correct.
Note that NumPy will error on import if it detects incorrect float32 dot
results. This problem has been seen on the Mac when working in the Anaconda
enviroment and is due to a subtle interaction between MKL and PyQt5. It is not
strictly a NumPy problem, but it is best that users be aware of it. See the
gh-8577 NumPy issue for more information.
The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.28.2 and should work for the upcoming Python 3.7.
Contributors
A total of 7 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Allan Haldane
- Charles Harris
- Marten van Kerkwijk
- Matti Picus
- Pauli Virtanen
- Ryan Soklaski +
- Sebastian Berg
Pull requests merged
A total of 11 pull requests were merged for this release.
- #11104: BUG: str of DOUBLE_DOUBLE format wrong on ppc64
- #11170: TST: linalg: add regression test for gh-8577
- #11174: MAINT: add sanity-checks to be run at import time
- #11181: BUG: void dtype setup checked offset not actual pointer for alignment
- #11194: BUG: Python2 doubles don't print correctly in interactive shell.
- #11198: BUG: optimizing compilers can reorder call to npy_get_floatstatus
- #11199: BUG: reduce using SSE only warns if inside SSE loop
- #11203: BUG: Bytes delimiter/comments in genfromtxt should be decoded
- #11211: BUG: Fix reference count/memory leak exposed by better testing
- #11219: BUG: Fixes einsum broadcasting bug when optimize=True
- #11251: DOC: Document 1.14.4 release.
Checksums
MD5
118e010f76fba91f05111e775d08b9d2 numpy-1.14.4-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
a08af11af72e8393d61f1724e2a42258 numpy-1.14.4-cp27-cp27m-manylinux1_i686.whl
bbf56f4de32bb2c4215e01ea4f1b9445 numpy-1.14.4-cp27-cp27m-manylinux1_x86_64.whl
b5e17dcc08205a278ffd33c6baeb7562 numpy-1.14.4-cp27-cp27mu-manylinux1_i686.whl
e6844d6134fed4f79b52cd89d66edb76 numpy-1.14.4-cp27-cp27mu-manylinux1_x86_64.whl
e9d4ab30ffee0f57da2292ed2c42bdcb numpy-1.14.4-cp27-none-win32.whl
ff04e3451a90fdf9ae8b6db8b3e8c2d6 numpy-1.14.4-cp27-none-win_amd64.whl
fbe6a5a9a0de9f85bcb729702a132769 numpy-1.14.4-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
33a177cf9d60fa26d30dc80b7163a374 numpy-1.14.4-cp34-cp34m-manylinux1_i686.whl
6335ee571648d8db7561a619328b69c7 numpy-1.14.4-cp34-cp34m-manylinux1_x86_64.whl
e53dd3796a0cdec43037b18c5c54d1a3 numpy-1.14.4-cp34-none-win32.whl
aab911c898c58073b47a2d1f28228a41 numpy-1.14.4-cp34-none-win_amd64.whl
a05e215d9443c838a531119eb5c1eadc numpy-1.14.4-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
7c5f7ff2cccb13c22b87f768ac1cc6e2 numpy-1.14.4-cp35-cp35m-manylinux1_i686.whl
d22105d03a15c9fd6ec4ecffa4b1f764 numpy-1.14.4-cp35-cp35m-manylinux1_x86_64.whl
7a5d4c66c7f6e430eb73b5683d99cacb numpy-1.14.4-cp35-none-win32.whl
cf0c074d9243f8bf6eff8291ac12a003 numpy-1.14.4-cp35-none-win_amd64.whl
79233bdad30a65beb515c86a4612102d numpy-1.14.4-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
135139bd2ec26e2b52bdd2d36be94c44 numpy-1.14.4-cp36-cp36m-manylinux1_i686.whl
9c56d525cf6da2b8489e723d72ccc9a2 numpy-1.14.4-cp36-cp36m-manylinux1_x86_64.whl
ec9af9e19aac597e1a245ada9c333e2d numpy-1.14.4-cp36-none-win32.whl
f8ec9c6167f2b0d08066ec78c3a01a4c numpy-1.14.4-cp36-none-win_amd64.whl
7de00fc3be91a3ab913d4efe206b3928 numpy-1.14.4.tar.gz
a8a23723342a561e579757553e9db73a numpy-1.14.4.zip
SHA256
c0c4bdcb771a147cb14286e3aeb72267e1664652d4150b0df255f0c210166a62 numpy-1.14.4-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
939376b3b8d9bd42529a2713534c9bae7f11c774614d4d2f7f2a38cae96101f1 numpy-1.14.4-cp27-cp27m-manylinux1_i686.whl
6105d909e56c4f3f173a7294154eee5da80853104e9c3ebcf9e523fb3bb6cf70 numpy-1.14.4-cp27-cp27m-manylinux1_x86_64.whl
3ed68b8ef0635e12b06c216d3ed33572d9c15b05a5a5d6ab870d073190c3eef3 numpy-1.14.4-cp27-cp27mu-manylinux1_i686.whl
1dc831683f18c11e6b5b7ad3610b9f00417b8d3fc63a8adcdbe68844d9dd6f62 numpy-1.14.4-cp27-cp27mu-manylinux1_x86_64.whl
8d87ac65d830ee3087e6bd02b0201e68aed4c715ff2e227e3640e7ded38d8a2e numpy-1.14.4-cp27-none-win32.whl
7fbceea93b6877419d84516705a265dfc4626939a29107a4d04db599bf6cdf8d numpy-1.14.4-cp27-none-win_amd64.whl
a1b4a80d59658fc438716095deb1971c6315482b461d976f760d920b6509fd5d numpy-1.14.4-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
ef7a07f6a77658a1038e6d22e53458129c04a95b5770f080b5741320d9491e32 numpy-1.14.4-cp34-cp34m-manylinux1_i686.whl
c5065b3aec37cd1b7ec2882b3ab86e200d15219a0fb96fea65a16c6b59d3c0f0 numpy-1.14.4-cp34-cp34m-manylinux1_x86_64.whl
b2b2741da83b1e016094b2fef2cadec1abd3ccd3d97428634ec6afe1dcb699b8 numpy-1.14.4-cp34-none-win32.whl
419dfe9bcb09d2e87ecf296c5ebf2b047c568419c89588acc9dbce6d2d761bea numpy-1.14.4-cp34-none-win_amd64.whl
be4664fe153ca6dbd961fb06f99b9b88b114ab44649376253b540aafbf42e469 numpy-1.14.4-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
0d6d7bbcb54babaf39fe658bcc6f79641c9c62813c6d477802d783c7ba1a437c numpy-1.14.4-cp35-cp35m-manylinux1_i686.whl
f54114395aabe13c7c4e4b425145cfd998eaf0781e87a9e9b2e77426f1ec8a82 numpy-1.14.4-cp35-cp35m-manylinux1_x86_64.whl
eb6ccd2b47d43199ec9a7c39bd45e399ccb5756e7367aaf92ced3c46fa67b16b numpy-1.14.4-cp35-none-win32.whl
f6a4ae8d5e1126bf4d8520a9aa6a82d067ab3ce7d21f58f0d50ead2aebda7bfb numpy-1.14.4-cp35-none-win_amd64.whl
b037993dfb1175a68b6a2bfc6b1c2af57c09031d1332fea3ab25a539b43bd475 numpy-1.14.4-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
e6c24c83ca64d447a18f041bd53cbe96c74405f59939b6006755105583b62629 numpy-1.14.4-cp36-cp36m-manylinux1_i686.whl
f29a9c5607b0fded7a9f0871dbd06918a88cb0a465acfac5c67f92d1a4115d48 numpy-1.14.4-cp36-cp36m-manylinux1_x86_64.whl
d9ceb6c680ffbe55ef6cf9d93558e0ddb72d616b885d77c536920f3da2112703 numpy-1.14.4-cp36-none-win32.whl
9e6694912f13afd8b1e15aa8002e9c951a377c94080c5442de154d743a69b3ff numpy-1.14.4-cp36-none-win_amd64.whl
c9a83644685edf8b5383b7632daa37df115b41aa20ca6ec3139e707d88f7c903 numpy-1.14.4.tar.gz
2185a0f31ecaa0792264fa968c8e0ba6d96acf144b26e2e1d1cd5b77fc11a691 numpy-1.14.4.zip
v1.14.3
==========================
NumPy 1.14.3 Release Notes
This is a bugfix release for a few bugs reported following the 1.14.2 release:
- np.lib.recfunctions.fromrecords accepts a list-of-lists, until 1.15
- In python2, float types use the new print style when printing to a file
- style arg in "legacy" print mode now works for 0d arrays
The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.28.2.
Contributors
A total of 6 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Allan Haldane
- Charles Harris
- Jonathan March +
- Malcolm Smith +
- Matti Picus
- Pauli Virtanen
Pull requests merged
A total of 8 pull requests were merged for this release.
- #10862: BUG: floating types should override tp_print (1.14 backport)
- #10905: BUG: for 1.14 back-compat, accept list-of-lists in fromrecords
- #10947: BUG: 'style' arg to array2string broken in legacy mode (1.14...
- #10959: BUG: test, fix for missing flags['WRITEBACKIFCOPY'] key
- #10960: BUG: Add missing underscore to prototype in check_embedded_lapack
- #10961: BUG: Fix encoding regression in ma/bench.py (Issue #10868)
- #10962: BUG: core: fix NPY_TITLE_KEY macro on pypy
- #10974: BUG: test, fix PyArray_DiscardWritebackIfCopy...
Checksums
MD5
14b675b1f5c0e33dea22735df8ecf5d1 numpy-1.14.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
501b9237037beee4c1262180c317f527 numpy-1.14.3-cp27-cp27m-manylinux1_i686.whl
51f3c8de7bac77ce864a8a28dc0c3f10 numpy-1.14.3-cp27-cp27m-manylinux1_x86_64.whl
37bfe26b655464a77356ee053deafad2 numpy-1.14.3-cp27-cp27mu-manylinux1_i686.whl
c8243f0d6a77c88acf48235aaedf1497 numpy-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl
9c616eb6134c92ca42cca5883e7861b7 numpy-1.14.3-cp27-none-win32.whl
fa3f732464bc83eb08fc6748aeb01ba0 numpy-1.14.3-cp27-none-win_amd64.whl
711dd188cf3269e092adb4240742731b numpy-1.14.3-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
0450e19513ff2406055bdffcdfef8d82 numpy-1.14.3-cp34-cp34m-manylinux1_i686.whl
1a0fc864b3b1aea403b426eb2e83276c numpy-1.14.3-cp34-cp34m-manylinux1_x86_64.whl
13fa200925025289dbd120078c54377f numpy-1.14.3-cp34-none-win32.whl
fc74d7d13da26e2ffc8bf39d5c24d171 numpy-1.14.3-cp34-none-win_amd64.whl
faee14118dea28c6e2be5aadaa1613ca numpy-1.14.3-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
e93edc38b9e31d774af60b45ad25d3d7 numpy-1.14.3-cp35-cp35m-manylinux1_i686.whl
6d7ced18705cdd82030472b7a0b106c9 numpy-1.14.3-cp35-cp35m-manylinux1_x86_64.whl
42000f9cfef06906e25c0020a9c92366 numpy-1.14.3-cp35-none-win32.whl
b7cd0a630d24ef8ed245cde71e50c46e numpy-1.14.3-cp35-none-win_amd64.whl
d728ee343c54c8b9b1186747bae6800b numpy-1.14.3-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
0f8ed907b7c37d7e8c0508ee30ac5e0b numpy-1.14.3-cp36-cp36m-manylinux1_i686.whl
04428f5a071531dd463504250c194de3 numpy-1.14.3-cp36-cp36m-manylinux1_x86_64.whl
a376953ac6bfca04371899d70126ebd4 numpy-1.14.3-cp36-none-win32.whl
955959dbc1a743308bfcafb4d867da29 numpy-1.14.3-cp36-none-win_amd64.whl
7c3c806ae27196c92d2fb3fbd4991e81 numpy-1.14.3.tar.gz
97416212c0a172db4bc6b905e9c4634b numpy-1.14.3.zip
SHA256
a8dbab311d4259de5eeaa5b4e83f5f8545e4808f9144e84c0f424a6ee55a7b98 numpy-1.14.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
034717bfef517858abc79324820a702dc6cd063effb9baab86533e8a78670689 numpy-1.14.3-cp27-cp27m-manylinux1_i686.whl
f39afab5769b3aaa786634b94b4a23ef3c150bdda044e8a32a3fc16ddafe803b numpy-1.14.3-cp27-cp27m-manylinux1_x86_64.whl
8670067685051b49d1f2f66e396488064299fefca199c7c80b6ba0c639fedc98 numpy-1.14.3-cp27-cp27mu-manylinux1_i686.whl
0db6301324d0568089663ef2701ad90ebac0e975742c97460e89366692bd0563 numpy-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl
98ff275f1b5907490d26b30b6ff111ecf2de0254f0ab08833d8fe61aa2068a00 numpy-1.14.3-cp27-none-win32.whl
aaef1bea636b6e552bbc5dae0ada87d4f6046359daaa97a05a013b0169620f27 numpy-1.14.3-cp27-none-win_amd64.whl
760550fdf9d8ec7da9c4402a4afe6e25c0f184ae132011676298a6b636660b45 numpy-1.14.3-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
e8578a62a8eaf552b95d62f630bb5dd071243ba1302bbff3e55ac48588508736 numpy-1.14.3-cp34-cp34m-manylinux1_i686.whl
e33baf50f2f6b7153ddb973601a11df852697fba4c08b34a5e0f39f66f8120e1 numpy-1.14.3-cp34-cp34m-manylinux1_x86_64.whl
0074d42e2cc333800bd09996223d40ec52e3b1ec0a5cab05dacc09b662c4c1ae numpy-1.14.3-cp34-none-win32.whl
c3fe23df6fe0898e788581753da453f877350058c5982e85a8972feeecb15309 numpy-1.14.3-cp34-none-win_amd64.whl
1864d005b2eb7598063e35c320787d87730d864f40d6410f768fe4ea20672016 numpy-1.14.3-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
f22b3206f1c561dd9110b93d144c6aaa4a9a354e3b07ad36030df3ea92c5bb5b numpy-1.14.3-cp35-cp35m-manylinux1_i686.whl
c80fcf9b38c7f4df666150069b04abbd2fe42ae640703a6e1f128cda83b552b7 numpy-1.14.3-cp35-cp35m-manylinux1_x86_64.whl
510863d606c932b41d2209e4de6157ab3fdf52001d3e4ad351103176d33c4b8b numpy-1.14.3-cp35-none-win32.whl
c5eb7254cfc4bd7a4330ad7e1f65b98343836865338c57b0e25c661e41d5cfd9 numpy-1.14.3-cp35-none-win_amd64.whl
b8987e30d9a0eb6635df9705a75cf8c4a2835590244baecf210163343bc65176 numpy-1.14.3-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
57dc6c22d59054542600fce6fae2d1189b9c50bafc1aab32e55f7efcc84a6c46 numpy-1.14.3-cp36-cp36m-manylinux1_i686.whl
46ce8323ca9384814c7645298b8b627b7d04ce97d6948ef02da357b2389d6972 numpy-1.14.3-cp36-cp36m-manylinux1_x86_64.whl
9ccf4d5c9139b1e985db915039baa0610a7e4a45090580065f8d8cb801b7422f numpy-1.14.3-cp36-none-win32.whl
560e23a12e7599be8e8b67621396c5bc687fd54b48b890adbc71bc5a67333f86 numpy-1.14.3-cp36-none-win_amd64.whl
cfcfc7a9a8ba4275c60a815c683d59ac5e7aa9362d76573b6cc4324ffb1235fa numpy-1.14.3.tar.gz
9016692c7d390f9d378fc88b7a799dc9caa7eb938163dda5276d3f3d6f75debf numpy-1.14.3.zip
v1.14.2
==========================
NumPy 1.14.2 Release Notes
This is a bugfix release for some bugs reported following the 1.14.1 release. The major
problems dealt with are as follows.
- Residual bugs in the new array printing functionality.
- Regression resulting in a relocation problem with shared library.
- Improved PyPy compatibility.
The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.26.1, which is known to not support the upcoming
Python 3.7 release. People who wish to run Python 3.7 should check out the
NumPy repo and try building with the, as yet, unreleased master branch of
Cython.
Contributors
A total of 4 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Allan Haldane
- Charles Harris
- Eric Wieser
- Pauli Virtanen
Pull requests merged
A total of 5 pull requests were merged for this release.
- #10674: BUG: Further back-compat fix for subclassed array repr
- #10725: BUG: dragon4 fractional output mode adds too many trailing zeros
- #10726: BUG: Fix f2py generated code to work on PyPy
- #10727: BUG: Fix missing NPY_VISIBILITY_HIDDEN on npy_longdouble_to_PyLong
- #10729: DOC: Create 1.14.2 notes and changelog.
Checksums
MD5
9bb06966218d0f3d0a25a6155c7d2439 numpy-1.14.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
b8a260b915d44475f4385fed4c6a7ec8 numpy-1.14.2-cp27-cp27m-manylinux1_i686.whl
7733aa702cebb5b0469b820ea9cfc293 numpy-1.14.2-cp27-cp27m-manylinux1_x86_64.whl
ef1065f3ecd08054eca9c6c14a2e3518 numpy-1.14.2-cp27-cp27mu-manylinux1_i686.whl
1227a63fcc8ce91a75d2ab006d406df7 numpy-1.14.2-cp27-cp27mu-manylinux1_x86_64.whl
6ac633c46c13dd2af93761460d63436e numpy-1.14.2-cp27-none-win32.whl
187a94722b84d65cc3a9ecfce27ee3b2 numpy-1.14.2-cp27-none-win_amd64.whl
580340cfe4a14f8a9e1d781d7b42955b numpy-1.14.2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
7f38fb83008ed4bb8217840ac27aeba4 numpy-1.14.2-cp34-cp34m-manylinux1_i686.whl
cbe383ad27db21767b6ffdd943e3df9c numpy-1.14.2-cp34-cp34m-manylinux1_x86_64.whl
350a1e0f0c825ffa1de264108c648482 numpy-1.14.2-cp34-none-win32.whl
ececd9b8891d801d4a968c2ec5eac7bb numpy-1.14.2-cp34-none-win_amd64.whl
8a74bb1f94ad8c1ad8f37e73f967b850 numpy-1.14.2-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
c1231d7e7fc52c09dff9a529ad228818 numpy-1.14.2-cp35-cp35m-manylinux1_i686.whl
ef57856bf6dade82922ab58922756dd0 numpy-1.14.2-cp35-cp35m-manylinux1_x86_64.whl
8c98ab081112832e3a7faca624598119 numpy-1.14.2-cp35-none-win32.whl
2652e9660be5d074224d14436504f008 numpy-1.14.2-cp35-none-win_amd64.whl
1cdb6cf8d60dfbe99f60639dac38471e numpy-1.14.2-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
b11c80344b84853b7a24acc51bbe4945 numpy-1.14.2-cp36-cp36m-manylinux1_i686.whl
65c3802c0f25f2d26aa784433643f655 numpy-1.14.2-cp36-cp36m-manylinux1_x86_64.whl
8f9986b323d4215925d6cfa1cd1bc14d numpy-1.14.2-cp36-none-win32.whl
9d78ceef101313f49fd0b8fed25d889c numpy-1.14.2-cp36-none-win_amd64.whl
e39878fafb11828983aeec583dda4a06 numpy-1.14.2.tar.gz
080f01a19707cf467393e426382c7619 numpy-1.14.2.zip
SHA256
719d914f564f35cce4dc103808f8297c807c9f0297ac183ed81ae8b5650e698e numpy-1.14.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
0f6a5ed0cd7ab1da11f5c07a8ecada73fc55a70ef7bb6311a4109891341d7277 numpy-1.14.2-cp27-cp27m-manylinux1_i686.whl
d0928076d9bd8a98de44e79b1abe50c1456e7abbb40af7ef58092086f1a6c729 numpy-1.14.2-cp27-cp27m-manylinux1_x86_64.whl
d858423f5ed444d494b15c4cc90a206e1b8c31354c781ac7584da0d21c09c1c3 numpy-1.14.2-cp27-cp27mu-manylinux1_i686.whl
20cac3123d791e4bf8482a580d98d6b5969ba348b9d5364df791ba3a666b660d numpy-1.14.2-cp27-cp27mu-manylinux1_x86_64.whl
528ce59ded2008f9e8543e0146acb3a98a9890da00adf8904b1e18c82099418b numpy-1.14.2-cp27-none-win32.whl
56e392b7c738bd70e6f46cf48c8194d3d1dd4c5a59fae4b30c58bb6ef86e5233 numpy-1.14.2-cp27-none-win_amd64.whl
99051e03b445117b26028623f1a487112ddf61a09a27e2d25e6bc07d37d94f25 numpy-1.14.2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
768e777cc1ffdbf97c507f65975c8686ebafe0f3dc8925d02ac117acc4669ce9 numpy-1.14.2-cp34-cp34m-manylinux1_i686.whl
675e0f23967ce71067d12b6944add505d5f0a251f819cfb44bdf8ee7072c090d numpy-1.14.2-cp34-cp34m-manylinux1_x86_64.whl
a958bf9d4834c72dee4f91a0476e7837b8a2966dc6fcfc42c421405f98d0da51 numpy-1.14.2-cp34-none-win32.whl
bb370120de6d26004358611441e07acda26840e41dfedc259d7f8cc613f96495 numpy-1.14.2-cp34-none-win_amd64.whl
f2b1378b63bdb581d5d7af2ec0373c8d40d651941d283a2afd7fc71184b3f570 numpy-1.14.2-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
a1413d06abfa942ca0553bf3bccaff5fdb36d55b84f2248e36228db871147dab numpy-1.14.2-cp35-cp35m-manylinux1_i686.whl
7f76d406c6b998d6410198dcb82688dcdaec7d846aa87e263ccf52efdcfeba30 numpy-1.14.2-cp35-cp35m-manylinux1_x86_64.whl
a7157c9ac6bddd2908c35ef099e4b643bc0e0ebb4d653deb54891d29258dd329 numpy-1.14.2-cp35-none-win32.whl
0fd65cbbfdbf76bbf80c445d923b3accefea0fe2c2082049e0ce947c81fe1d3f numpy-1.14.2-cp35-none-win_amd64.whl
8c18ee4dddd5c6a811930c0a7c7947bf16387da3b394725f6063f1366311187d numpy-1.14.2-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
0739146eaf4985962f07c62f7133aca89f3a600faac891ce6c7f3a1e2afe5272 numpy-1.14.2-cp36-cp36m-manylinux1_i686.whl
07e21f14490324cc1160db101e9b6c1233c33985af4cb1d301dd02650fea1d7f numpy-1.14.2-cp36-cp36m-manylinux1_x86_64.whl
e6120d63b50e2248219f53302af7ec6fa2a42ed1f37e9cda2c76dbaca65036a7 numpy-1.14.2-cp36-none-win32.whl
6be6b0ca705321c178c9858e5ad5611af664bbdfae1df1541f938a840a103888 numpy-1.14.2-cp36-none-win_amd64.whl
ddbcda194f49e0cf0663fa8131cb9d7a3b876d14dea0047d3c5fdfaf20adbb40 numpy-1.14.2.tar.gz
facc6f925c3099ac01a1f03758100772560a0b020fb9d70f210404be08006bcb numpy-1.14.2.zip
v1.14.1
==========================
NumPy 1.14.1 Release Notes
This is a bugfix release for some problems reported following the 1.14.0 release. The major
problems fixed are the following.
- Problems with the new array printing, particularly the printing of complex
values, Please report any additional problems that may turn up. - Problems with
np.einsum
due to the newoptimized=True
default. Some
fixes for optimization have been applied andoptimize=False
is now the
default. - The sort order in
np.unique
whenaxis=<some-number>
will now always
be lexicographic in the subarray elements. In previous NumPy versions there
was an optimization that could result in sorting the subarrays as unsigned
byte strings. - The change in 1.14.0 that multi-field indexing of structured arrays returns a
view instead of a copy has been reverted but remains on track for NumPy 1.15.
Affected users should read the 1.14.1 Numpy User Guide section
"basics/structured arrays/accessing multiple fields" for advice on how to
manage this transition.
The Python versions supported in this release are 2.7 and 3.4 - 3.6. The Python
3.6 wheels available from PIP are built with Python 3.6.2 and should be
compatible with all previous versions of Python 3.6. The source releases were
cythonized with Cython 0.26.1, which is known to not support the upcoming
Python 3.7 release. People who wish to run Python 3.7 should check out the
NumPy repo and try building with the, as yet, unreleased master branch of
Cython.
Contributors
A total of 14 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Allan Haldane
- Charles Harris
- Daniel Smith
- Dennis Weyland +
- Eric Larson
- Eric Wieser
- Jarrod Millman
- Kenichi Maehashi +
- Marten van Kerkwijk
- Mathieu Lamarre
- Sebastian Berg
- Simon Conseil
- Simon Gibbons
- xoviat
Pull requests merged
A total of 36 pull requests were merged for this release.
- #10339: BUG: restrict the config modifications to win32
- #10368: MAINT: Adjust type promotion in linalg.norm
- #10375: BUG: add missing paren and remove quotes from repr of fieldless...
- #10395: MAINT: Update download URL in setup.py.
- #10396: BUG: fix einsum issue with unicode input and py2
- #10397: BUG: fix error message not formatted in einsum
- #10398: DOC: add documentation about how to handle new array printing
- #10403: BUG: Set einsum optimize parameter default to
False
. - #10424: ENH: Fix repr of np.record objects to match np.void types #10412
- #10425: MAINT: Update zesty to artful for i386 testing
- #10431: REL: Add 1.14.1 release notes template
- #10435: MAINT: Use ValueError for duplicate field names in lookup (backport)
- #10534: BUG: Provide a better error message for out-of-order fields
- #10536: BUG: Resize bytes_ columns in genfromtxt (backport of #10401)
- #10537: BUG: multifield-indexing adds padding bytes: revert for 1.14.1
- #10539: BUG: fix np.save issue with python 2.7.5
- #10540: BUG: Add missing DECREF in Py2 int() cast
- #10541: TST: Add circleci document testing to maintenance/1.14.x
- #10542: BUG: complex repr has extra spaces, missing + (1.14 backport)
- #10550: BUG: Set missing exception after malloc
- #10557: BUG: In numpy.i, clear CARRAY flag if wrapped buffer is not C_CONTIGUOUS.
- #10558: DEP: Issue FutureWarning when malformed records detected.
- #10559: BUG: Fix einsum optimize logic for singleton dimensions
- #10560: BUG: Fix calling ufuncs with a positional output argument.
- #10561: BUG: Fix various Big-Endian test failures (ppc64)
- #10562: BUG: Make dtype.descr error for out-of-order fields.
- #10563: BUG: arrays not being flattened in
union1d
- #10607: MAINT: Update sphinxext submodule hash.
- #10608: BUG: Revert sort optimization in np.unique.
- #10609: BUG: infinite recursion in str of 0d subclasses
- #10610: BUG: Align type definition with generated lapack
- #10612: BUG/ENH: Improve output for structured non-void types
- #10622: BUG: deallocate recursive closure in arrayprint.py (1.14 backport)
- #10624: BUG: Correctly identify comma seperated dtype strings
- #10629: BUG: deallocate recursive closure in arrayprint.py (backport...
- #10630: REL: Prepare for 1.14.1 release.
Checksums
MD5
8a56c4b06e859ccad60a85d3486b214a numpy-1.14.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
94189ecffbc1032df54f570bb6ff490d numpy-1.14.1-cp27-cp27m-manylinux1_i686.whl
61473860888d024caa1261274620352e numpy-1.14.1-cp27-cp27m-manylinux1_x86_64.whl
f9f6ada0f110230569cea9d8d2f5416a numpy-1.14.1-cp27-cp27mu-manylinux1_i686.whl
0c2c6637c5c8ca639e1b7b3fa4ac64cc numpy-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl
dbae0fec3c033b42695d9df9636ba9a5 numpy-1.14.1-cp27-none-win32.whl
c7ee8517a1a52b90f08651c1f17b6e39 numpy-1.14.1-cp27-none-win_amd64.whl
bb051505823a3f990ea22750a08cd40b numpy-1.14.1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
655f4c67598dfe583fce3075e0152b06 numpy-1.14.1-cp34-cp34m-manylinux1_i686.whl
94cdf22837fdec46d03709fe0338ee09 numpy-1.14.1-cp34-cp34m-manylinux1_x86_64.whl
5b7fc9eb18463356ed8d018a3b486d53 numpy-1.14.1-cp34-none-win32.whl
b261be176aa57dce8a64f4fac169c74b numpy-1.14.1-cp34-none-win_amd64.whl
196639515a2084dc5b4b86a5ea0247ce numpy-1.14.1-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
d897ae36d1487a101714deeb8782b7c5 numpy-1.14.1-cp35-cp35m-manylinux1_i686.whl
12f2c45cc7501dc5a5e670042300f1e6 numpy-1.14.1-cp35-cp35m-manylinux1_x86_64.whl
e94355704fe2f6b3d1bcf6c8f6189df4 numpy-1.14.1-cp35-none-win32.whl
13b79737d10e857ee808a1dfdd2ff01e numpy-1.14.1-cp35-none-win_amd64.whl
8819860639f492ddf6045a95227624d0 numpy-1.14.1-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
2b3d5774779e808cef193872dd4f6dbe numpy-1.14.1-cp36-cp36m-manylinux1_i686.whl
dd2321ea4590ec05d825d8c9a64fd64b numpy-1.14.1-cp36-cp36m-manylinux1_x86_64.whl
a5803be2b83c1ec5f36ed9f58a0f848c numpy-1.14.1-cp36-none-win32.whl
299c92352d2c08baa6a8142971b39295 numpy-1.14.1-cp36-none-win_amd64.whl
0e09f20f62ab9f8a02cb7bd3fd023482 numpy-1.14.1.tar.gz
b8324ef90ac9064cd0eac46b8b388674 numpy-1.14.1.zip
SHA256
e2335d56d2fd9fc4e3a3f2d3148aafec4962682375f429f05c45a64dacf19436 numpy-1.14.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
9b762e78739b6e021124adbea07611682db99cd3fca7f3c3a8b98b8f74ea5699 numpy-1.14.1-cp27-cp27m-manylinux1_i686.whl
7d4c549e41507db4f04ec7cfab5597de8acf7871b16c9cf64cebcb9d39031ca6 numpy-1.14.1-cp27-cp27m-manylinux1_x86_64.whl
b803306c4c201e7dcda0ce1b9a9c87f61a7c7ce43de2c60c8e56147b76849a1a numpy-1.14.1-cp27-cp27mu-manylinux1_i686.whl
2da8dff91d489fea3e20155d41f4cd680de7d01d9a89fdd0ebb1bee6e72d3800 numpy-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl
6b8c2daacbbffc83b4a2ba83a61aa3ce60c66340b07b962bd27b6c6bb175bee1 numpy-1.14.1-cp27-none-win32.whl
89b9419019c47ec87cf4cfca77d85da4611cc0be636ec87b5290346490b98450 numpy-1.14.1-cp27-none-win_amd64.whl
49880b47d7272f902946dd995f346842c95fe275e2deb3082ef0495f0c718a69 numpy-1.14.1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
3d7ddd5bdfb12ec9668edf1aa49a4a3eddb0db4661b57ea431477eb9a2468894 numpy-1.14.1-cp34-cp34m-manylinux1_i686.whl
788e1757f8e409cd805a7cd82993cd9252fa19e334758a4c6eb5a8b334abb084 numpy-1.14.1-cp34-cp34m-manylinux1_x86_64.whl
377def0873bbb1fbdedb14b3275b10a29b1b55619a3f7f775c4e7f9ce2461b9c numpy-1.14.1-cp34-none-win32.whl
9501c9ccd081977ca5579a3ec4009d6baff6bacb04bf07214aade3324734195a numpy-1.14.1-cp34-none-win_amd64.whl
a1f5173df8190ef9c6235d260d70ca70c6fb029683ceb66e244c5cc6e335947a numpy-1.14.1-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
12cf4b27039b88e407ad66894d99a957ef60fea0eeb442026af325add2ab264d numpy-1.14.1-cp35-cp35m-manylinux1_i686.whl
4e2fc841c8c642f7fd44591ef856ca409cedba6aea27928df34004c533839eee numpy-1.14.1-cp35-cp35m-manylinux1_x86_64.whl
e5ade7a69dccbd99c4fdbb95b6d091d941e62ffa588b0ed8fb0a2854118fef3f numpy-1.14.1-cp35-none-win32.whl
6b1011ffc87d7e2b1b7bcc6dc21bdf177163658746ef778dcd21bf0516b9126c numpy-1.14.1-cp35-none-win_amd64.whl
a8bc80f69570e11967763636db9b24c1e3e3689881d10ae793cec74cf7a627b6 numpy-1.14.1-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
81b9d8f6450e752bd82e7d9618fa053df8db1725747880e76fb09710b57f78d0 numpy-1.14.1-cp36-cp36m-manylinux1_i686.whl
e8522cad377cc2ef20fe13aae742cc265172910c98e8a0d6014b1a8d564019e2 numpy-1.14.1-cp36-cp36m-manylinux1_x86_64.whl
a3d5dd437112292c707e54f47141be2f1100221242f07eda7bd8477f3ddc2252 numpy-1.14.1-cp36-none-win32.whl
c8000a6cbc5140629be8c038c9c9cdb3a1c85ff90bd4180ec99f0f0c73050b5e numpy-1.14.1-cp36-none-win_amd64.whl
8708a775be9a9a457b80a49193c57bd9d51a8a195ed1f1c4b8e89eaf3aa646ee numpy-1.14.1.tar.gz
fa0944650d5d3fb95869eaacd8eedbd2d83610c85e271bd9d3495ffa9bc4dc9c numpy-1.14.1.zip
v1.14.0
==========================
NumPy 1.14.0 Release Notes
Numpy 1.14.0 is the result of seven months of work and contains a large number
of bug fixes and new features, along with several changes with potential
compatibility issues. The major change that users will notice are the
stylistic changes in the way numpy arrays and scalars are printed, a change
that will affect doctests. See below for details on how to preserve the
old style printing when needed.
A major decision affecting future development concerns the schedule for
dropping Python 2.7 support in the runup to 2020. The decision has been made to
support 2.7 for all releases made in 2018, with the last release being
designated a long term release with support for bug fixes extending through
2019. In 2019 support for 2.7 will be dropped in all new releases. More details
can be found in the relevant NEP_.
This release supports Python 2.7 and 3.4 - 3.6.
.. _NEP: https://github.com/numpy/numpy/blob/master/doc/neps/dropping-python2.7-proposal.rst
Highlights
-
The
np.einsum
function uses BLAS when possible -
genfromtxt
,loadtxt
,fromregex
andsavetxt
can now handle
files with arbitrary Python supported encoding. -
Major improvements to printing of NumPy arrays and scalars.
New functions
-
parametrize
: decorator added to numpy.testing -
chebinterpolate
: Interpolate function at Chebyshev points. -
format_float_positional
andformat_float_scientific
: format
floating-point scalars unambiguously with control of rounding and padding. -
PyArray_ResolveWritebackIfCopy
andPyArray_SetWritebackIfCopyBase
,
new C-API functions useful in achieving PyPy compatibity.
Deprecations
-
Using
np.bool_
objects in place of integers is deprecated. Previously
operator.index(np.bool_)
was legal and allowed constructs such as
[1, 2, 3][np.True_]
. That was misleading, as it behaved differently from
np.array([1, 2, 3])[np.True_]
. -
Truth testing of an empty array is deprecated. To check if an array is not
empty, usearray.size > 0
. -
Calling
np.bincount
withminlength=None
is deprecated.
minlength=0
should be used instead. -
Calling
np.fromstring
with the default value of thesep
argument is
deprecated. When that argument is not provided, a broken version of
np.frombuffer
is used that silently accepts unicode strings and -- after
encoding them as either utf-8 (python 3) or the default encoding
(python 2) -- treats them as binary data. If reading binary data is
desired,np.frombuffer
should be used directly. -
The
style
option of array2string is deprecated in non-legacy printing mode. -
PyArray_SetUpdateIfCopyBase
has been deprecated. For NumPy versions >= 1.14
usePyArray_SetWritebackIfCopyBase
instead, seeC API changes
below for
more details. -
The use of
UPDATEIFCOPY
arrays is deprecated, seeC API changes
below
for details. We will not be dropping support for those arrays, but they are
not compatible with PyPy.
Future Changes
-
np.issubdtype
will stop downcasting dtype-like arguments.
It might be expected thatissubdtype(np.float32, 'float64')
and
issubdtype(np.float32, np.float64)
mean the same thing - however, there
was an undocumented special case that translated the former into
issubdtype(np.float32, np.floating)
, giving the surprising result of True.This translation now gives a warning that explains what translation is
occurring. In the future, the translation will be disabled, and the first
example will be made equivalent to the second. -
np.linalg.lstsq
default forrcond
will be changed. Thercond
parameter tonp.linalg.lstsq
will change its default to machine precision
times the largest of the input array dimensions. A FutureWarning is issued
whenrcond
is not passed explicitly. -
a.flat.__array__()
will return a writeable copy ofa
whena
is
non-contiguous. Previously it returned an UPDATEIFCOPY array whena
was
writeable. Currently it returns a non-writeable copy. See gh-7054 for a
discussion of the issue. -
Unstructured void array's
.item
method will return a bytes object. In the
future, calling.item()
on arrays or scalars ofnp.void
datatype will
return abytes
object instead of a buffer or int array, the same as
returned bybytes(void_scalar)
. This may affect code which assumed the
return value was mutable, which will no longer be the case. A
FutureWarning
is now issued when this would occur.
Compatibility notes
The mask of a masked array view is also a view rather than a copy
There was a FutureWarning about this change in NumPy 1.11.x. In short, it is
now the case that, when changing a view of a masked array, changes to the mask
are propagated to the original. That was not previously the case. This change
affects slices in particular. Note that this does not yet work properly if the
mask of the original array is nomask
and the mask of the view is changed.
See gh-5580 for an extended discussion. The original behavior of having a copy
of the mask can be obtained by calling the unshare_mask
method of the view.
np.ma.masked
is no longer writeable
Attempts to mutate the masked
constant now error, as the underlying arrays
are marked readonly. In the past, it was possible to get away with::
# emulating a function that sometimes returns np.ma.masked
val = random.choice([np.ma.masked, 10])
var_arr = np.asarray(val)
val_arr += 1 # now errors, previously changed np.ma.masked.data
np.ma
functions producing fill_value
s have changed
Previously, np.ma.default_fill_value
would return a 0d array, but
np.ma.minimum_fill_value
and np.ma.maximum_fill_value
would return a
tuple of the fields. Instead, all three methods return a structured np.void
object, which is what you would already find in the .fill_value
attribute.
Additionally, the dtype guessing now matches that of np.array
- so when
passing a python scalar x
, maximum_fill_value(x)
is always the same as
maximum_fill_value(np.array(x))
. Previously x = long(1)
on Python 2
violated this assumption.
a.flat.__array__()
returns non-writeable arrays when a
is non-contiguous
The intent is that the UPDATEIFCOPY array previously returned when a
was
non-contiguous will be replaced by a writeable copy in the future. This
temporary measure is aimed to notify folks who expect the underlying array be
modified in this situation that that will no longer be the case. The most
likely places for this to be noticed is when expressions of the form
np.asarray(a.flat)
are used, or when a.flat
is passed as the out
parameter to a ufunc.
np.tensordot
now returns zero array when contracting over 0-length dimension
Previously np.tensordot
raised a ValueError when contracting over 0-length
dimension. Now it returns a zero array, which is consistent with the behaviour
of np.dot
and np.einsum
.
numpy.testing
reorganized
This is not expected to cause problems, but possibly something has been left
out. If you experience an unexpected import problem using numpy.testing
let us know.
np.asfarray
no longer accepts non-dtypes through the dtype
argument
This previously would accept dtype=some_array
, with the implied semantics
of dtype=some_array.dtype
. This was undocumented, unique across the numpy
functions, and if used would likely correspond to a typo.
1D np.linalg.norm
preserves float input types, even for arbitrary orders
Previously, this would promote to float64
when arbitrary orders were
passed, despite not doing so under the simple cases::
>>> f32 = np.float32([1, 2])
>>> np.linalg.norm(f32, 2.0).dtype
dtype('float32')
>>> np.linalg.norm(f32, 2.0001).dtype
dtype('float64') # numpy 1.13
dtype('float32') # numpy 1.14
This change affects only float32
and float16
arrays.
count_nonzero(arr, axis=())
now counts over no axes, not all axes
Elsewhere, axis==()
is always understood as "no axes", but
count_nonzero
had a special case to treat this as "all axes". This was
inconsistent and surprising. The correct way to count over all axes has always
been to pass axis == None
.
__init__.py
files added to test directories
This is for pytest compatibility in the case of duplicate test file names in
the different directories. As a result, run_module_suite
no longer works,
i.e., python <path-to-test-file>
results in an error.
.astype(bool)
on unstructured void arrays now calls bool
on each element
On Python 2, void_array.astype(bool)
would always return an array of
True
, unless the dtype is V0
. On Python 3, this operation would usually
crash. Going forwards, astype
matches the behavior of bool(np.void)
,
considering a buffer of all zeros as fal...
v1.14.0rc1
==========================
NumPy 1.14.0 Release Notes
Numpy 1.14.0 is the result of seven months of work and contains a large number
of bug fixes and new features, along with several changes with potential
compatibility issues. The major change that users will notice are the
stylistic changes in the way numpy arrays and scalars are printed, a change
that will affect doctests. See below for details on how to preserve the
old style printing when needed.
A major decision affecting future development concerns the schedule for
dropping Python 2.7 support in the runup to 2020. The decision has been made to
support 2.7 for all releases made in 2018, with the last release being
designated a long term release with support for bug fixes extending through
2019. In 2019 support for 2.7 will be dropped in all new releases. More details
can be found in the relevant NEP.
This release supports Python 2.7 and 3.4 - 3.6.
Highlights
-
The
np.einsum
function uses BLAS when possible -
genfromtxt
,loadtxt
,fromregex
andsavetxt
can now handle
files with arbitrary Python supported encoding. -
Major improvements to printing of NumPy arrays and scalars.
New functions
-
parametrize
: decorator added to numpy.testing -
chebinterpolate
: Interpolate function at Chebyshev points. -
format_float_positional
andformat_float_scientific
: format
floating-point scalars unambiguously with control of rounding and padding. -
PyArray_ResolveWritebackIfCopy
andPyArray_SetWritebackIfCopyBase
,
new C-API functions useful in achieving PyPy compatibity.
Deprecations
-
Using
np.bool_
objects in place of integers is deprecated. Previously
operator.index(np.bool_)
was legal and allowed constructs such as
[1, 2, 3][np.True_]
. That was misleading, as it behaved differently from
np.array([1, 2, 3])[np.True_]
. -
Truth testing of an empty array is deprecated. To check if an array is not
empty, usearray.size > 0
. -
Calling
np.bincount
withminlength=None
is deprecated.
minlength=0
should be used instead. -
Calling
np.fromstring
with the default value of thesep
argument is
deprecated. When that argument is not provided, a broken version of
np.frombuffer
is used that silently accepts unicode strings and -- after
encoding them as either utf-8 (python 3) or the default encoding
(python 2) -- treats them as binary data. If reading binary data is
desired,np.frombuffer
should be used directly. -
The
style
option of array2string is deprecated in non-legacy printing mode. -
PyArray_SetUpdateIfCopyBase
has been deprecated. For NumPy versions >= 1.14
usePyArray_SetWritebackIfCopyBase
instead, seeC API changes
below for
more details. -
The use of
UPDATEIFCOPY
arrays is deprecated, seeC API changes
below
for details. We will not be dropping support for those arrays, but they are
not compatible with PyPy.
Future Changes
-
np.issubdtype
will stop downcasting dtype-like arguments.
It might be expected thatissubdtype(np.float32, 'float64')
and
issubdtype(np.float32, np.float64)
mean the same thing - however, there
was an undocumented special case that translated the former into
issubdtype(np.float32, np.floating)
, giving the surprising result of True.This translation now gives a warning that explains what translation is
occurring. In the future, the translation will be disabled, and the first
example will be made equivalent to the second. -
np.linalg.lstsq
default forrcond
will be changed. Thercond
parameter tonp.linalg.lstsq
will change its default to machine precision
times the largest of the input array dimensions. A FutureWarning is issued
whenrcond
is not passed explicitly. -
a.flat.__array__()
will return a writeable copy ofa
whena
is
non-contiguous. Previously it returned an UPDATEIFCOPY array whena
was
writeable. Currently it returns a non-writeable copy. See gh-7054 for a
discussion of the issue. -
Unstructured void array's
.item
method will return a bytes object. In the
future, calling.item()
on arrays or scalars ofnp.void
datatype will
return abytes
object instead of a buffer or int array, the same as
returned bybytes(void_scalar)
. This may affect code which assumed the
return value was mutable, which will no longer be the case. A
FutureWarning
is now issued when this would occur.
Compatibility notes
The mask of a masked array view is also a view rather than a copy
There was a FutureWarning about this change in NumPy 1.11.x. In short, it is
now the case that, when changing a view of a masked array, changes to the mask
are propagated to the original. That was not previously the case. This change
affects slices in particular. Note that this does not yet work properly if the
mask of the original array is nomask
and the mask of the view is changed.
See gh-5580 for an extended discussion. The original behavior of having a copy
of the mask can be obtained by calling the unshare_mask
method of the view.
np.ma.masked
is no longer writeable
Attempts to mutate the masked
constant now error, as the underlying arrays
are marked readonly. In the past, it was possible to get away with::
# emulating a function that sometimes returns np.ma.masked
val = random.choice([np.ma.masked, 10])
var_arr = np.asarray(val)
val_arr += 1 # now errors, previously changed np.ma.masked.data
np.ma
functions producing fill_value
s have changed
Previously, np.ma.default_fill_value
would return a 0d array, but
np.ma.minimum_fill_value
and np.ma.maximum_fill_value
would return a
tuple of the fields. Instead, all three methods return a structured np.void
object, which is what you would already find in the .fill_value
attribute.
Additionally, the dtype guessing now matches that of np.array
- so when
passing a python scalar x
, maximum_fill_value(x)
is always the same as
maximum_fill_value(np.array(x))
. Previously x = long(1)
on Python 2
violated this assumption.
a.flat.__array__()
returns non-writeable arrays when a
is non-contiguous
The intent is that the UPDATEIFCOPY array previously returned when a
was
non-contiguous will be replaced by a writeable copy in the future. This
temporary measure is aimed to notify folks who expect the underlying array be
modified in this situation that that will no longer be the case. The most
likely places for this to be noticed is when expressions of the form
np.asarray(a.flat)
are used, or when a.flat
is passed as the out
parameter to a ufunc.
np.tensordot
now returns zero array when contracting over 0-length dimension
Previously np.tensordot
raised a ValueError when contracting over 0-length
dimension. Now it returns a zero array, which is consistent with the behaviour
of np.dot
and np.einsum
.
numpy.testing
reorganized
This is not expected to cause problems, but possibly something has been left
out. If you experience an unexpected import problem using numpy.testing
let us know.
np.asfarray
no longer accepts non-dtypes through the dtype
argument
This previously would accept dtype=some_array
, with the implied semantics
of dtype=some_array.dtype
. This was undocumented, unique across the numpy
functions, and if used would likely correspond to a typo.
1D np.linalg.norm
preserves float input types, even for arbitrary orders
Previously, this would promote to float64
when arbitrary orders were
passed, despite not doing so under the simple cases::
>>> f32 = np.float32([1, 2])
>>> np.linalg.norm(f32, 2.0).dtype
dtype('float32')
>>> np.linalg.norm(f32, 2.0001).dtype
dtype('float64') # numpy 1.13
dtype('float32') # numpy 1.14
This change affects only float32
and float16
arrays.
count_nonzero(arr, axis=())
now counts over no axes, not all axes
Elsewhere, axis==()
is always understood as "no axes", but
count_nonzero
had a special case to treat this as "all axes". This was
inconsistent and surprising. The correct way to count over all axes has always
been to pass axis == None
.
__init__.py
files added to test directories
This is for pytest compatibility in the case of duplicate test file names in
the different directories. As a result, run_module_suite
no longer works,
i.e., python <path-to-test-file>
results in an error.
.astype(bool)
on unstructured void arrays now calls bool
on each element
On Python 2, void_array.astype(bool)
would always return an array of
True
, unless the dtype is V0
. On Python 3, this operation would usually
crash. Going forwards, astype
matches the behavior of bool(np.void)
,
considering a buffer of all zeros as false, and anyt...
v1.13.3
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
==========================
NumPy 1.13.3 Release Notes
This is a bugfix release for some problems found since 1.13.1. The most
important fixes are for CVE-2017-12852 and temporary elision. Users of earlier
versions of 1.13 should upgrade.
The Python versions supported are 2.7 and 3.4 - 3.6. The Python 3.6 wheels
available from PIP are built with Python 3.6.2 and should be compatible with
all previous versions of Python 3.6. It was cythonized with Cython 0.26.1,
which should be free of the bugs found in 0.27 while also being compatible with
Python 3.7-dev. The Windows wheels were built with OpenBlas instead ATLAS,
which should improve the performance of the linear algebra functions.
The NumPy 1.13.3 release is a re-release of 1.13.2, which suffered from a
bug in Cython 0.27.0.
Contributors
A total of 12 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Allan Haldane
- Brandon Carter
- Charles Harris
- Eric Wieser
- Iryna Shcherbina +
- James Bourbeau +
- Jonathan Helmus
- Julian Taylor
- Matti Picus
- Michael Lamparski +
- Michael Seifert
- Ralf Gommers
Pull requests merged
A total of 22 pull requests were merged for this release.
- #9390 BUG: Return the poly1d coefficients array directly
- #9555 BUG: Fix regression in 1.13.x in distutils.mingw32ccompiler.
- #9556 BUG: Fix true_divide when dtype=np.float64 specified.
- #9557 DOC: Fix some rst markup in numpy/doc/basics.py.
- #9558 BLD: Remove -xhost flag from IntelFCompiler.
- #9559 DOC: Removes broken docstring example (source code, png, pdf)...
- #9580 BUG: Add hypot and cabs functions to WIN32 blacklist.
- #9732 BUG: Make scalar function elision check if temp is writeable.
- #9736 BUG: Various fixes to np.gradient
- #9742 BUG: Fix np.pad for CVE-2017-12852
- #9744 BUG: Check for exception in sort functions, add tests
- #9745 DOC: Add whitespace after "versionadded::" directive so it actually...
- #9746 BUG: Memory leak in np.dot of size 0
- #9747 BUG: Adjust gfortran version search regex
- #9757 BUG: Cython 0.27 breaks NumPy on Python 3.
- #9764 BUG: Ensure
_npy_scaled_cexp{,f,l}
is defined when needed. - #9765 BUG: PyArray_CountNonzero does not check for exceptions
- #9766 BUG: Fixes histogram monotonicity check for unsigned bin values
- #9767 BUG: Ensure consistent result dtype of count_nonzero
- #9771 BUG: MAINT: Fix mtrand for Cython 0.27.
- #9772 DOC: Create the 1.13.2 release notes.
- #9794 DOC: Create 1.13.3 release notes.
Checksums
MD5
53600ccf171825920dddf0e9a1d9e0c8 numpy-1.13.3-2-cp27-none-win32.whl
13cd744cbb51b90ea446c01241ca2cde numpy-1.13.3-2-cp34-none-win32.whl
3fd27b05b46c473a584505ff6a50a5fa numpy-1.13.3-2-cp35-none-win32.whl
5add1046e7c1b33b865edafd1a6a7577 numpy-1.13.3-2-cp36-none-win32.whl
b660f17365f0dfc5e5904c21f15ac46e numpy-1.13.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
408f1f0070dfbc0569b440083febeb82 numpy-1.13.3-cp27-cp27m-manylinux1_i686.whl
64bc7dc4a503398e0b4cc48778136374 numpy-1.13.3-cp27-cp27m-manylinux1_x86_64.whl
95e59446abb9152ed6af36b655e35dfe numpy-1.13.3-cp27-cp27mu-manylinux1_i686.whl
f6d06d326e873d626576bd705e4f29a2 numpy-1.13.3-cp27-cp27mu-manylinux1_x86_64.whl
1ec7662240b1dd91fb801061409ab3e3 numpy-1.13.3-cp27-none-win_amd64.whl
819c122467a1053d4802fd7ce984a30a numpy-1.13.3-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
2992819fbaa8acd34529479592b3d376 numpy-1.13.3-cp34-cp34m-manylinux1_i686.whl
264590d2df37212e97a91c0e5828a452 numpy-1.13.3-cp34-cp34m-manylinux1_x86_64.whl
cf208337059f8a48235a7741f04c9e49 numpy-1.13.3-cp34-none-win_amd64.whl
d2f98af88264169f5cef760d95cef0f0 numpy-1.13.3-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
6ac434243bc3ed40e9854b319f76b1b5 numpy-1.13.3-cp35-cp35m-manylinux1_i686.whl
94c0a5c9aa6fd35862cbe7862fd68f36 numpy-1.13.3-cp35-cp35m-manylinux1_x86_64.whl
5b5ad3cdc43c950b8a26ab1bf3413e46 numpy-1.13.3-cp35-none-win_amd64.whl
dd2f6c5e72526d45fdd09c22b85e4bb8 numpy-1.13.3-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
ad1b9be95891adc1f7f7e9a23c1fe92d numpy-1.13.3-cp36-cp36m-manylinux1_i686.whl
bcbfbd9d0dbe026fd59a7756e190cdfa numpy-1.13.3-cp36-cp36m-manylinux1_x86_64.whl
8748204cc74d46f617c316507360ccb3 numpy-1.13.3-cp36-none-win_amd64.whl
c1d433e5973e548809e80c9118474b73 numpy-1.13.3.tar.gz
300a6f0528122128ac07c6deb5c95917 numpy-1.13.3.zip
SHA256
910e7ae5eeee8d322775187692c5c66719cd58d230fbfd57245ea3cf75716910 numpy-1.13.3-2-cp27-none-win32.whl
f5c9ca457057cd5e12ddab36cded8b1f38bf1f45bf550d4ca2839b11ec57f597 numpy-1.13.3-2-cp34-none-win32.whl
d29e72413b66df23c75b9b469253c823698ea2e00f58e9e0df64b7a50696e8ac numpy-1.13.3-2-cp35-none-win32.whl
539345898a4ae17421c159ae2a350901a5e6ce3da8f24168c6c67b3536e13de8 numpy-1.13.3-2-cp36-none-win32.whl
929928932f91082a168e36984179deddd58f8e98822ad2f33a2955d7c4eec596 numpy-1.13.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
62b09f3d1ea01d79c16a6642cb21599f53b9338c59971b2418a573155d2202ec numpy-1.13.3-cp27-cp27m-manylinux1_i686.whl
c4b1914d86c43399438518a2ac8bcba2fb64dd5a18efddded3783b9daae70933 numpy-1.13.3-cp27-cp27m-manylinux1_x86_64.whl
6c6feb0647380db6e1d5d49ef9fb59c42240f25fb8df8b6e82ecb436c7e0621a numpy-1.13.3-cp27-cp27mu-manylinux1_i686.whl
da2f47e46d7a93b73891d1981378717dc73c6ad5cc4fd23c934bfea7847fa958 numpy-1.13.3-cp27-cp27mu-manylinux1_x86_64.whl
4c767b6d9c9a071bb36ea34eb240ee5192fe0bc4c13be5e6c51e0350a30f7ac0 numpy-1.13.3-cp27-none-win_amd64.whl
b2f98838f4bbc3bf23af7e97ffcad18a2dc6bbb0726796781e02b9347af6685f numpy-1.13.3-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
11fcbed36c101a3b9c4636e791efccba82409ebbedaba938c97be8bdddd029cc numpy-1.13.3-cp34-cp34m-manylinux1_i686.whl
8969c8f987f8bcc3e30c014532cfc20e4a8f86a50c361596e086310853adacb7 numpy-1.13.3-cp34-cp34m-manylinux1_x86_64.whl
2875e8055a1ea8d933b1c9d0f8714c0aa11c097bfadfcb8564c4d868fbf09a41 numpy-1.13.3-cp34-none-win_amd64.whl
09b87d652c03508447d0f618e1d3ae57595acd3e0f0c11ac91bf68ed7bdb3a28 numpy-1.13.3-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
9cad35b911e150f00bb8080950c7e9f172714bbd0234f5ab74b4e3e2d9288b37 numpy-1.13.3-cp35-cp35m-manylinux1_i686.whl
479863de17f66810db00bccf35289555365da45d3b053ccf539b95ab3b9c24f6 numpy-1.13.3-cp35-cp35m-manylinux1_x86_64.whl
b162c6b044960b4ea0f42be049ce2af1d18c60f82748f0a27bd5ad182a731bf3 numpy-1.13.3-cp35-none-win_amd64.whl
fa656dccfa9141774440575a6e7875d08b93f4a332eb5ae40877b26bed291c01 numpy-1.13.3-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
7dfa5b49fb2a080bd0d39bfbcff1177bacb14fcb28c857fd65fd0c18938935de numpy-1.13.3-cp36-cp36m-manylinux1_i686.whl
e8e0e75db757e41463888939d26c8058b4ecd25e563c597e9119f512dc0ee1da numpy-1.13.3-cp36-cp36m-manylinux1_x86_64.whl
c8dc6aa96882df6323bf9545934e37c6e05959bd789ae4b14d50509b093907aa numpy-1.13.3-cp36-none-win_amd64.whl
4c6b4eef790528bebb7ec9590d74cc193868940fe68e4109a91c196df72d8094 numpy-1.13.3.tar.gz
36ee86d5adbabc4fa2643a073f93d5504bdfed37a149a3a49f4dde259f35a750 numpy-1.13.3.zip
-----BEGIN PGP SIGNATURE-----
iQEcBAEBAgAGBQJZz/tOAAoJEGefIoN3xSR7b7cIALNvpkl8yHIxBaA89vSFVkhK
XRPrYgmk7kc5Kr4IImNcj1ijvrG/GSeB1QHZq1ndBkC5mKNRt4ZrfGjxpbj13OQx
UQ3QjjEJOS3nRB4ILBjvioUKjV4OThscOZqzwEeek3zXd2RgqSXuEEUJg3F1jtGR
bgBt6+FiU1DdCWR2jg1FtnFoVetpY2/9dKMmdEsGZF5QePT5U6sPFw7ySZDOWUNA
PdHmgVhJZGLQ9llr+TnjeV5kpSiPyT33sCUbp9eoP0TXV2jnF24/q5lkxe1RLGo/
Bh/zdgopjfdW605gKD2xkri00r+1yYywzypXt0o7HsKNS7V9hUM/b0mIxbEPJ7I=
=k4c2
-----END PGP SIGNATURE-----