NumPy 1.8.1 发行说明#

这是1.8.x系列中的一个仅修复bug的版本.

修复的问题#

  • gh-4276: 修复对象数组的 mean, var, std 方法

  • gh-4262: 移除不安全的 mktemp 用法

  • gh-2385: absolute(complex(inf)) 在 python3 中引发无效警告

  • gh-4024: 序列赋值在形状不匹配时没有引发异常

  • gh-4027: 修复读取长于 BUFFERSIZE 字符串的分块读取

  • gh-4109: 修复 0-d 数组索引的对象标量返回类型

  • gh-4018: 修复 ufuncs 中缺少内存分配失败的检查

  • gh-4156: 高阶 linalg.norm 丢弃复数数组的虚部元素

  • gh-4144: linalg: norm 在 longdouble, signed int 上失败

  • gh-4094: 修复 _strided_to_strided_string_to_datetime 中的 NaT 处理

  • gh-4051: 修复 _strided_to_strided_string_to_datetime 中未初始化的使用

  • gh-4093: 在 Python 2.6.6 下加载压缩的 .npz 文件失败

  • gh-4138: 在 python 3.4 中,使用非本机字节序 memoryview 会导致段错误

  • gh-4123: 修复 lexsort 中缺失的 NULL 检查

  • gh-4170: 修复 memoryviews 中仅本机 long long 检查

  • gh-4187: 修复 32 位系统上的大文件支持

  • gh-4152: fromfile: 确保 python3 中文件句柄位置同步

  • gh-4176: clang 兼容性: conversion_utils 中的 Typos

  • gh-4223: 获取非整数项导致数组返回

  • gh-4197: 修复 memoryview 失败情况下的轻微内存泄漏

  • gh-4206: 修复使用单线程 python 的构建

  • gh-4220: 添加 versionadded:: 1.8.0 到 ufunc.at docstring

  • gh-4267: 改进内存分配失败的处理

  • gh-4267:修复在 ufunc.at 中使用没有 GIL 的 capi 的问题

  • gh-4261:检测 GNU 编译器的供应商版本

  • gh-4253:IRR 返回 nan 而不是有效的负数答案

  • gh-4254:修复字节数组不必要的字节顺序标志更改

  • gh-3263:numpy.random.shuffle 破坏 MaskedArray 的掩码

  • gh-4270:np.random.shuffle 不适用于灵活的 dtypes

  • gh-3173:random.multinomial 的 ‘size’ 参数导致段错误

  • gh-2799:允许将 unique 与复数列表一起使用

  • gh-3504:修复整数数组标量的 linspace 截断

  • gh-4191:get_info(‘openblas’) 不读取 libraries 键

  • gh-3348:_descriptor_from_pep3118_format 中的访问冲突

  • gh-3175:从 bytearray 到 numpy.array() 的转换导致段错误

  • gh-4266:histogramdd - 非常接近最后一个边界的条目的错误结果

  • gh-4408:修复对象数组的 stride_stricks.as_strided 函数

  • gh-4225:修复 log1p 和 exmp1 在 windows 编译器构建中对 np.inf 的返回

  • gh-4359:修复 flex 数组的 str.format 中的无限递归

  • gh-4145:带有指数运算符的广播结果的不正确形状

  • gh-4483:修复 {dot,multiply,inner}(scalar, matrix_of_objs) 的交换律

  • gh-4466:当大小可能改变时,延迟 npyiter 的大小检查

  • gh-4485:缓冲步幅被错误地标记为固定

  • gh-4354:byte_bounds 对 datetime dtypes 失败

  • gh-4486:在从/向高精度 datetime64 对象转换时出现段错误/错误

  • gh-4428:einsum(None, None, None, None) 导致段错误

  • gh-4134:未初始化的使用于大小为 1 的对象缩减

变更#

NDIter#

现在调用 NpyIter_RemoveAxis 时,迭代器范围将被重置.

当正在跟踪多重索引并且迭代器未被缓冲时,可以使用 NpyIter_RemoveAxis .在这种情况下,迭代器的大小可以缩小.由于迭代器的总大小是有限的,因此迭代器在这些调用之前可能太大.在这种情况下,其大小将被设置为 -1 ,并且在删除多重索引,设置迭代器范围或获取下一个函数时会发出错误,而不是在构建时发出.

这对当前工作的代码没有影响,但强调了如果可能出现这些情况,则必须检查错误返回值.在大多数情况下,被迭代的数组与迭代器一样大,因此不会发生此类问题.

np.distutils 的可选缩减详细程度#

设置 numpy.distutils.system_info.system_info.verbosity = 0 ,然后调用 numpy.distutils.system_info.get_info('blas_opt') 将不会在输出上打印任何内容.这主要用于使用 numpy.distutils 的其他包.

弃用#

C-API#

实用程序函数 npy_PyFile_Dup 和 npy_PyFile_DupClose 已被 python 3 应用于其文件对象的内部缓冲破坏.为了解决这个问题,在 npy_3kcompat.h 中声明了两个新函数 npy_PyFile_Dup2 和 npy_PyFile_DupClose2,并且旧函数已被弃用.由于这些函数的脆弱性,建议尽可能使用 python API.