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: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:将 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 不适用于灵活的 dtype
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:使用 numpy.array() 从 bytearray 创建数组时出现段错误
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 dtype 失败
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。