NumPy 1.10.2 发行说明#

此版本修复了 1.10.1 中出现的一些错误,并增加了各种构建和发行改进。

Numpy 1.10.1 支持 Python 2.6 - 2.7 和 3.2 - 3.5。

兼容性说明#

放宽步长检查不再是默认设置#

存在向后兼容性问题,涉及视图改变多维 Fortran 数组的 dtype,这些问题需要更长时间来解决。

修复 numpy.i 中的 swig 错误#

放宽步长检查揭示了 array_is_fortran(a) 中的一个错误,它使用 PyArray_ISFORTRAN 检查 Fortran 连续性,而不是 PyArray_IS_F_CONTIGUOUS。您可能需要使用更新的 numpy.i 重新生成 swig 文件。

弃用在 Fortran 顺序中改变维度的视图#

如果赋值新描述符到非 C 连续数组的 dtype 属性导致形状改变,则此操作将被弃用。这实际上禁止使用改变第一个轴上元素大小的 dtype 来查看多维 Fortran 数组。

弃用的原因是,当启用放宽步长检查时,同时是 C 连续和 Fortran 连续的数组总是被视为 C 连续,这破坏了一些依赖于这两种情况对于 ndim > 1 的非标量数组是互斥的代码。此弃用为始终启用放宽步长检查铺平了道路。

修复的问题#

  • gh-6019 带有多维列的结构化数组,其 masked array repr 失败。

  • gh-6462 空数组的中位数操作引发 IndexError。

  • gh-6467 记录数组访问的性能退化。

  • gh-6468 numpy.interp 在 x[0]==xp[0] 时仍使用 'left' 值。

  • gh-6475 当其中一个参数是 memmap 时,np.allclose 返回一个 memmap。

  • gh-6491 广播 stride_tricks 数组时出错。

  • gh-6495 gfortran 中无法识别的命令行选项 ‘-ffpe-summary’。

  • gh-6497 对 recarrays 执行 reduce 操作失败。

  • gh-6498 在 1.10 发行说明中提及默认类型转换规则的更改。

  • gh-6530 partition 函数在空输入时出错。

  • gh-6532 numpy.inner 有时返回错误的不精确值。

  • gh-6563 f2py 最新版本中的 Intent(out) 功能损坏。

  • gh-6569 在 'python setup.py build_ext -i' 后无法运行测试。

  • gh-6572 广播 stride_tricks 数组组件时出错。

  • gh-6575 BUG: Split 生成维度数量错误的空数组

  • gh-6590 numpy 1.10 中的 Fortran 数组问题。

  • gh-6602 Random __all__ 缺少 choice 和 dirichlet。

  • gh-6611 ma.dot 在 1.10 中不再总是返回 masked array。

  • gh-6618 numpy.i 中 make_fortran() 的 NPY_FORTRANORDER

  • gh-6636 numpy.recarray 中嵌套 dtype 的内存泄漏

  • gh-6641 按字段对 recarray 进行子集操作会生成结构化数组。

  • gh-6667 ma.make_mask 错误处理 ma.nomask 输入。

  • gh-6675 master 和 1.10 中优化 blas 检测损坏。

  • gh-6678 从 X.dtype = complex (或 Y = X.view(complex)) 获取意外错误

  • gh-6718 pip 安装的 virtualenv 中 numpy-1.10.1 的 f2py 测试失败。

  • gh-6719 编译 Cython 文件时出错:没有 GIL 不允许 Pythonic 除法。

  • gh-6771 Numpy.rec.fromarrays 在版本 1.9.2 和 1.10.1 之间丢失 dtype 元数据。

  • gh-6781 maintenance/1.10.x 中的 travis-ci 脚本需要修复。

  • gh-6807 Windows 1.10.2 测试错误

已合并的 PRs#

以下 PR 已合并到 1.10.2 中。如果 PR 是回溯移植,则列出针对 master 的原始 PR 编号。

  • gh-5773 MAINT: 与 pytest 一起使用时隐藏测试助手回溯。

  • gh-6094 BUG: 修复了掩码结构化数组字符串表示的错误。

  • gh-6208 MAINT: 通过移除不必要的安全检查来加速字段访问。

  • gh-6460 BUG: 用侵入性较小的过程替换 os.environ.clear。

  • gh-6470 BUG: 修复 numpy distutils 中的 AttributeError。

  • gh-6472 MAINT: 对于 travis 3.5 测试,使用 Python 3.5 而不是 3.5-dev。

  • gh-6474 REL: 更新 Paver 脚本以进行 sdist 和自动切换测试警告。

  • gh-6478 BUG: 修复 OS X 构建的 Intel 编译器标志。

  • gh-6481 MAINT: 带有空格的 LIBPATH 现在支持 Python 2.7+ 和 Win32。

  • gh-6487 BUG: 允许在 f2py 数组定义中嵌套使用参数。

  • gh-6488 BUG: 在 f2py 中扩展公共块而不是覆盖。

  • gh-6499 DOC: 提及就地操作的默认类型转换已更改。

  • gh-6500 BUG: 被视为子数组的 Recarrays 不会转换为 np.record 类型。

  • gh-6501 REL: 为构建的文档添加“make upload”命令,更新“make dist”。

  • gh-6526 BUG: 修复 setup.py 在 -OO 模式下使用 __doc__ 的问题。

  • gh-6527 BUG: 修复空数组取中位数时的 IndexError。

  • gh-6537 BUG: 使带标量参数的 ma.atleast_* 返回数组。

  • gh-6538 BUG: 修复 ma.masked_values 在请求时不会收缩掩码的问题。

  • gh-6546 BUG: 修复非连续数组的内积回归问题。

  • gh-6553 BUG: 修复 partition 和 argpartition 在空输入时的错误。

  • gh-6556 BUG: broadcast_arrays 与 as_strided 数组一起使用时出错。

  • gh-6558 MAINT: “make upload” 文档构建命令的小幅更新。

  • gh-6562 BUG: 禁用 recarray 中的视图安全检查。

  • gh-6567 BUG: 还原 f2py 中一些 import * 的修复。

  • gh-6574 DOC: Numpy 1.10.2 的发行说明。

  • gh-6577 BUG: 修复 #6569,允许 build_ext –inplace

  • gh-6579 MAINT: 修复文档上传规则中的错误。

  • gh-6596 BUG: 修复 swig 在放宽步长检查方面的问题。

  • gh-6606 DOC: 更新 1.10.2 发行说明。

  • gh-6614 BUG: 将 choice 和 dirichlet 添加到 numpy.random.__all__ 中。

  • gh-6621 BUG: 修复 swig make_fortran 函数。

  • gh-6628 BUG: 使 allclose 返回 Python 布尔值。

  • gh-6642 BUG: 修复 _convert_from_dict 中的内存泄漏。

  • gh-6643 ENH: 使 recarray.getitem 返回一个 recarray。

  • gh-6653 BUG: 修复 ma dot 始终返回 masked array 的问题。

  • gh-6668 BUG: ma.make_mask 对于 nomask 参数应始终返回 nomask。

  • gh-6686 BUG: 修复 assert_string_equal 中的一个错误。

  • gh-6695 BUG: 修复删除构建期间创建的临时目录的问题。

  • gh-6697 MAINT: 修复 PyArray_FROM_OT 宏定义中多余的分号。

  • gh-6718 TST: 测试 np.rint 大整数错误。

  • gh-6717 BUG: 在 Linux 上重新添加 CBLAS 回退检测。

  • gh-6721 BUG: 修复 #6719。

  • gh-6726 BUG: 修复因放宽步长回滚而暴露的错误。

  • gh-6757 BUG: 如果检测到 cblas,则链接 cblas 库。

  • gh-6756 TST: 只测试 f2py,而不是 f2py2.7 等,修复 #6718。

  • gh-6747 DEP: 弃用通过 descr 更改非 C 连续数组形状的方法。

  • gh-6775 MAINT: 在缺少 __future__ 样板的一些文件中包含它。

  • gh-6780 BUG: 元数据未复制到 base_dtype。

  • gh-6783 BUG: 修复新 Google 基础设施的 travis ci 测试。

  • gh-6785 BUG: 对 interp 的快速临时修复。

  • gh-6813 TST,BUG: 使 test_mvoid_multidim_print 在 32 位系统上工作。

  • gh-6817 BUG: 禁用 32 位 msvc9 编译器对 npy_rint 的优化。

  • gh-6819 TST: 修复 Windows 上 Python 2.x 的 test_mvoid_multidim_print 失败。

mingwpy 的初步支持已恢复,因为它导致了非 Windows 构建问题。

  • gh-6536 BUG: 恢复 gh-5614 以修复非 Windows 构建问题

np.lib.split 的一个修复被还原,因为它导致了“修复”行为,而此行为将出现在 Numpy 1.11 中,并且在 Numpy 1.9 中已经存在。有关此问题的说明,请参阅 gh-6575 上的讨论。

  • gh-6576 BUG: 恢复 gh-6376 以修复空数组的 split 行为。

放宽步长检查已恢复。存在向后兼容性问题,涉及视图改变多维 Fortran 数组的 dtype,这些问题需要更长时间来解决。

  • gh-6735 MAINT: 将不进行放宽步长检查设置为 1.10 的默认设置。

备注#

Numpy 1.10.1 版本中的一个错误导致依赖 Numpy 的项目中对 RuntimeWarningDeprecationWarning 抛出异常。此问题已修复。