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: 修复了在ufuncs中内存分配失败检查缺失的问题
gh-4156: 高阶 linalg.norm 丢弃复数数组的虚部元素
gh-4144: linalg: norm 在 longdouble 和有符号整数上失败
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 中的拼写错误
gh-4223: 获取一个非整数项导致数组返回
gh-4197: 修复 memoryview 失败情况下的轻微内存泄漏
gh-4206: 修复单线程 Python 构建
gh-4220: 在 ufunc.at 文档字符串中添加 versionadded:: 1.8.0
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: 当 ‘size’ 参数传递给 random.multinomial 时出现段错误
gh-2799: 允许在复杂列表中使用唯一
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: 修复了在Windows编译构建中np.inf的log1p和exmp1返回值
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.