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 连续,这会破坏一些依赖于两者对于维度 > 1 的非标量数组互斥的代码。此弃用为始终启用宽松步幅检查做准备。

已修复的问题#

  • gh-6019 对于具有多维列的结构化数组,掩码数组 repr 失败。

  • gh-6462 空数组的中位数产生 IndexError。

  • gh-6467 记录数组访问的性能下降。

  • gh-6468 numpy.interp 即使 x[0]==xp[0] 也使用“左”值。

  • gh-6475 np.allclose 在其一个参数是内存映射时返回内存映射。

  • gh-6491 广播 stride_tricks 数组中的错误。

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

  • gh-6497 在 recarrays 上进行约简操作失败。

  • gh-6498 在 1.10 版本说明中提到默认转换规则的更改。

  • gh-6530 分区函数在空输入上出错。

  • 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 缺少随机 __all__ 选择和 dirichlet。

  • gh-6611 ma.dot 在 1.10 中不再总是返回掩码数组。

  • 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 在 virtualenv 中使用 pip 安装的 numpy-1.10.1 的 f2py 测试失败。

  • gh-6719 编译 Cython 文件出错:不允许在没有 gil 的情况下进行 Python 式除法。

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

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

  • gh-6807 1.10.2 的 Windows 测试错误

已合并的 PR#

以下 PR 已合并到 1.10.2 中。当 PR 是反向移植时,将列出针对 master 的原始 PR 的 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:使用 Python 3.5 而不是 3.5-dev 进行 travis 3.5 测试。

  • 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:修复 -OO 模式下 setup.py 中 __doc__ 的使用。

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

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

  • gh-6538 BUG:修复 ma.masked_values 如果请求则不缩小掩码。

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

  • gh-6553 BUG:修复空输入的分区和 argpartition 错误。

  • gh-6556 BUG:使用 as_strided 数组的 broadcast_arrays 中的错误。

  • 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 以始终返回掩码数组。

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

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

  • gh-6695 BUG:修复在构建过程中创建的 tempdirs 的删除。

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

  • gh-6698 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 抛出异常。该问题已修复。