NumPy 1.16.1 发行说明#

NumPy 1.16.1 版本修复了针对 1.16.0 版本报告的错误,并从主分支回溯了几个增强功能,这些增强功能似乎适用于作为最后一个支持 Python 2.7 的发布系列。PyPI 上的轮子与 OpenBLAS v0.3.4+ 链接,这应该能解决之前 OpenBLAS 版本中已知的线程问题。

构建此版本的下游开发者应使用 Cython >= 0.29.2,如果使用 OpenBLAS,则应使用 OpenBLAS > v0.3.4。

如果您使用 pip 安装,可能会遇到 pip 未删除的旧版 NumPy 与当前版本混淆的问题,导致 ImportError。由于 pip 经过修改,这个问题在基于 Debian 的发行版上尤为常见。解决方法是确保所有通过 pip 安装的旧版 NumPy 都已移除。有关此问题的讨论,请参阅 #12736。请注意,之前这个问题会导致 AttributeError

贡献者#

共有 16 人为此次发布做出了贡献。名字旁带有“+”的人是首次贡献补丁。

  • 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: 增强:添加 mm->q 整除

  • #12768: 增强:将 np.core.overrides 移植到 C 以提高速度

  • #12769: 增强:添加 np.ctypeslib.as_ctypes_type(dtype),改进 np.ctypeslib.as_ctypes

  • #12773: 增强:向 np.testing.assert_array_equal… 添加“最大差异”消息

  • #12820: 增强:添加 mm->qm divmod

  • #12890: 增强:为冻结分析将 _dtype_ctype 添加到命名空间

兼容性说明#

  • 数组比较测试函数发出的更改后的错误消息可能会影响 doctests。详情见下文。

  • 将双精度和单精度非规格化数转换为 float16 的操作已得到修正。在某些罕见情况下,这可能导致结果向上而不是向下取整,从而改变结果的最后一位 (ULP)。

新功能#

divmod 操作现在支持两个 timedelta64 操作数#

divmod 运算符现在支持两个 np.timedelta64 操作数,类型签名为 mm->qm

改进#

np.ctypeslibctypes 支持的进一步改进#

新增了 numpy.ctypeslib.as_ctypes_type 函数,可用于将 dtype 转换为最佳猜测的 ctypes 类型。得益于此新函数,numpy.ctypeslib.as_ctypes 现在支持更广泛的数组类型,包括结构体、布尔值和非原生字节序的整数。

数组比较断言包含最大差异#

来自数组比较测试(如 np.testing.assert_allclose)的错误消息现在除了之前的“不匹配”百分比外,还包括“最大绝对差异”和“最大相对差异”。此信息使得更新绝对和相对误差容差变得更加容易。

更改#

timedelta64 % 0 行为调整为返回 NaT#

两个 np.timedelta64 操作数的模运算在除数为零的情况下现在返回 NaT,而不是返回零。