NumPy 1.8.1 发行说明#

这是 1.8.x 系列中仅修复错误的版本。

已修复问题#

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

  • gh-4262:删除不安全的 mktemp 使用

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

  • gh-4024:序列分配不会引发形状不匹配的异常

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

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

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

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

  • gh-4144: linalg: 规范在 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 中非本机字节存储视图的段错误

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

  • gh-4170:修复内存视图中仅限本机的长长检查

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

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

  • gh-4176:clang 兼容性:conversion_utils 中的拼写错误

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

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

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

  • gh-4220:将 versionadded:: 1.8.0 添加到 ufunc.at 文档字符串

  • 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 不适用于灵活的数据类型

  • gh-3173:当“size”参数为 random.multinomial 时出现分段错误

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

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

  • gh-4191: get_info('openblas') 不读取库密钥

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

  • gh-3175:来自 bytearray 的 numpy.array() 的分段错误

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

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

  • gh-4225:修复 Windows 编译器版本上 np.inf 的 log1p 和 exmp1 返回

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

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

  • gh-4483:修复 {dot,multiply,inner}(标量,matrix_of_objs)的交换性

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

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

  • gh-4354:byte_bounds 因日期时间数据类型而失败

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

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

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

变化

NDIter #

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

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

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

np.distutils 的可选简化冗长#

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

弃用#

C-API #

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