The NumPy 1.16.1 release fixes bugs reported against the 1.16.0 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.4+, which should fix the known threading issues found in previous OpenBLAS versions.
Downstream developers building this release should use Cython >= 0.29.2 and, if using OpenBLAS, OpenBLAS > v0.3.4.
If you are installing using pip, you may encounter a problem with older installed versions of NumPy that pip did not delete becoming mixed with the current version, resulting in an ImportError. That problem is particularly common on Debian derived distributions due to a modified pip. The fix is to make sure all previous NumPy versions installed by pip have been removed. See #12736 for discussion of the issue. Note that previously this problem resulted in an AttributeError.
ImportError
AttributeError
A total of 16 people contributed to this release. People with a “+” by their names contributed a patch for the first time.
Antoine Pitrou
Arcesio Castaneda Medina +
Charles Harris
Chris Markiewicz +
Christoph Gohlke
Christopher J. Markiewicz +
Daniel Hrisca +
EelcoPeacs +
Eric Wieser
Kevin Sheppard
Matti Picus
OBATA Akio +
Ralf Gommers
Sebastian Berg
Stephan Hoyer
Tyler Reddy
#12767: ENH: add mm->q floordiv
#12768: ENH: port np.core.overrides to C for speed
#12769: ENH: Add np.ctypeslib.as_ctypes_type(dtype), improve np.ctypeslib.as_ctypes
#12773: ENH: add “max difference” messages to np.testing.assert_array_equal…
#12820: ENH: Add mm->qm divmod
#12890: ENH: add _dtype_ctype to namespace for freeze analysis
The changed error message emitted by array comparison testing functions may affect doctests. See below for detail.
Casting from double and single denormals to float16 has been corrected. In some rare cases, this may result in results being rounded up instead of down, changing the last bit (ULP) of the result.
timedelta64
The divmod operator now handles two np.timedelta64 operands, with type signature mm->qm.
np.timedelta64
mm->qm
ctypes
np.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.ctypeslib.as_ctypes_type
numpy.ctypeslib.as_ctypes
Error messages from array comparison tests such as np.testing.assert_allclose now include “max absolute difference” and “max relative difference,” in addition to the previous “mismatch” percentage. This information makes it easier to update absolute and relative error tolerances.
timedelta64 % 0
NaT
The modulus operation with two np.timedelta64 operands now returns NaT in the case of division by zero, rather than returning zero