NumPy 1.16.1 发布说明#

NumPy 1.16.1 版本修复了 1.16.0 版本中报告的错误,并从 master 分支移植了若干增强功能,这些功能似乎适合作为最后一个支持 Python 2.7 的发布系列。PyPI 上的 wheels 与 OpenBLAS v0.3.4+ 链接,这应该能解决先前 OpenBLAS 版本中发现的已知线程问题。

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

如果您使用 pip 进行安装,可能会遇到旧版已安装的 NumPy 版本未被 pip 删除而与当前版本混淆的问题,从而导致 ImportError。这个问题在 Debian 派生发行版上尤其常见,因为 pip 的修改。解决方法是确保已删除所有之前由 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: ENH: 添加 mm->q floordiv

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

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

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

  • #12820: ENH: 添加 mm->qm divmod

  • #12890: ENH: 添加 _dtype_ctype 到命名空间以进行 freeze 分析

兼容性说明#

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

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

新功能#

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

divmod 运算符现在可以处理两个 np.timedelta64 操作数,其类型签名是 mm->qm

改进#

进一步改进 np.ctypeslib 中的 ctypes 支持#

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

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

诸如 np.testing.assert_allclose 等数组比较测试的错误消息现在包含“最大绝对差”和“最大相对差”,以及之前的“不匹配”百分比。这些信息使得更新绝对和相对误差容差更加容易。

更改#

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

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