NumPy 1.16.4 Release Notes#

NumPy 1.16.4 版本修复了针对 1.16.3 版本报告的错误,并向主分支移植了几项增强功能,这些功能似乎适合作为最后一个支持 Python 2.7 的版本系列。PyPI 上的 wheel 文件已与 OpenBLAS v0.3.7-dev 链接,这应该可以解决 Skylake 系列 CPU 上的一些问题。

下游开发者在构建此版本时应使用 Cython >= 0.29.2,如果使用 OpenBLAS,则使用 OpenBLAS > v0.3.7。支持的 Python 版本为 2.7 和 3.5-3.7。

新的弃用项#

C-API 包装数组的 Writeable 标志#

当一个数组通过 C-API 从一个数据指针创建并包装时,我们唯一知道该数据读写性质的指示是创建期间设置的 writeable 标志。强制将此标志设置为 writeable 是危险的。将来,将无法从 Python 中将 writeable 标志切换为 True。此弃用不应影响许多用户,因为通过这种方式创建的数组在实践中非常罕见,并且只能通过 NumPy C-API 访问。

兼容性说明#

随机流的潜在变化#

由于在对随机浮点数应用 log 时存在错误,当从 np.random.beta, np.random.binomial, np.random.laplace, np.random.logistic, np.random.logseriesnp.random.multinomial 中采样,并且在底层的 MT19937 随机流中生成了 0 时,流可能会发生变化。发生这种情况的概率为 \(10^{53}\) 中有 1 次,因此对于任何给定的种子,流发生变化的概率都极其微小。如果在底层生成器中遇到 0,那么现在将丢弃生成的错误值(np.infnp.nan)。

更改#

numpy.lib.recfunctions.structured_to_unstructured 不再压缩单字段视图#

先前 structured_to_unstructured(arr[['a']]) 会产生一个压缩的结果,这与 structured_to_unstructured(arr[['a', b']]) 的结果不一致。这是意外行为。可以通过 structured_to_unstructured(arr[['a']]).squeeze(axis=-1) 或更简单地通过 arr['a'] 来保留旧的行为。

贡献者#

共有 10 人为此版本做出了贡献。名字旁有“+”号的人是首次贡献补丁。

  • Charles Harris

  • Eric Wieser

  • Dennis Zollo +

  • Hunter Damron +

  • Jingbei Li +

  • Kevin Sheppard

  • Matti Picus

  • Nicola Soranzo +

  • Sebastian Berg

  • Tyler Reddy

已合并的拉取请求#

此版本合并了共 16 个拉取请求。

  • #13392: BUG: 某些 PyPy 版本缺少 PyStructSequence_InitType2。

  • #13394: MAINT, DEP: 修复弃用的 assertEquals()

  • #13396: BUG: 修复结构化到非结构化转换在单字段类型上的问题(回溯)

  • #13549: BLD: 使用 pytest 4.5 使 CI 再次通过

  • #13552: TST: 在 conftest.py 中注册标记。

  • #13559: BUG: 移除 arraymultiter_new 中空 kwargs 的 ValueError。

  • #13560: BUG: 在 crackfortran 中将 TypeError 添加到接受的异常中。

  • #13561: BUG: 在 descr_to_dtype 中处理子数组

  • #13562: BUG: 保护生成器免受 log(0.0) 的影响

  • #13563: BUG: 当…时,始终从 structured_to_unstructured 返回视图

  • #13564: BUG: 在检查编译器版本时捕获 stderr

  • #13565: BUG: longdouble(int) 不工作

  • #13587: BUG: distutils/system_info.py 修复缺失的 subprocess 导入 (#13523)

  • #13620: BUG,DEP: 修复没有 base 的数组的 writeable 标志设置

  • #13641: MAINT: 为 1.16.4 版本做准备。

  • #13644: BUG: 在打印 rel-、abs-error 时,特殊处理 object 数组