NumPy 1.16.4 版本说明#

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 封装数组的可写标志#

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

兼容性说明#

随机流的潜在更改#

由于将对数应用于随机浮点数的错误,当从np.random.betanp.random.binomialnp.random.laplacenp.random.logisticnp.random.logseriesnp.random.multinomial采样时,如果在底层的 MT19937 随机流中生成 0,则流可能会发生更改。发生这种情况的概率为 \(10^{53}\) 分之一,因此对于任何给定的种子,流发生更改的概率极小。如果在底层生成器中遇到 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:修复单字段类型上的 structured_to_unstructured(回退)

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

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

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

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

  • #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:修复没有基数组的可写标志设置

  • #13641: MAINT:准备 1.16.4 版本的发布。

  • #13644: BUG:打印 rel-、abs-error 时特殊情况对象数组