NumPy 1.6.0 发行说明#
此版本包括几个新功能以及大量的错误修复和改进的文档.它与 1.5.0 版本向后兼容,并支持 Python 2.4 - 2.7 和 3.1 - 3.2.
亮点#
重新引入了 datetime dtype 支持,以处理数组中的日期.
一种新的 16 位浮点类型.
一个新的迭代器,提高了许多函数的性能.
新功能#
新的 16 位浮点类型#
此版本增加了对 IEEE 754-2008 binary16 格式的支持,该格式可用作数据类型 numpy.half .在 Python 中,该类型的行为类似于 float 或 double ,并且 C 扩展可以使用公开的半浮点 API 添加对其的支持.
新迭代器#
添加了一个新的迭代器,用单个对象和 API 替换了现有迭代器和多迭代器的功能.此迭代器适用于不同于 C 或 Fortran 连续的通用内存布局,并处理标准 NumPy 和自定义广播.ufunc 提供的缓冲,自动数据类型转换和可选输出参数(但在其他地方难以复制)现在由此迭代器公开.
numpy.polynomial 中的 Legendre,Laguerre,Hermite,HermiteE 多项式#
扩展 polynomial 包中可用多项式的数量.此外,已向类中添加了一个新的 window 属性,以指定 domain 映射到的范围.这主要适用于 Laguerre,Hermite 和 HermiteE 多项式,它们的自然域是无限的,并提供了一种更直观的方式来获得值的正确映射,而无需使用不自然的技巧来处理域.
numpy.f2py 中 Fortran 假定形状数组和 size 函数支持#
F2py 现在支持包装使用假定形状数组的 Fortran 90 例程.在此之前,可以从 Python 调用此类例程,但相应的 Fortran 例程接收到的假定形状数组为零长度数组,从而导致无法预测的结果.感谢 Lorenz Hüdepohl 指出了与假定形状数组接口例程的正确方法.
此外,f2py 现在支持自动包装在维度规范中使用两个参数 size 函数的 Fortran 例程.
其他新函数#
numpy.ravel_multi_index :将多索引元组转换为平面索引数组,并将边界模式应用于索引.
numpy.einsum : 计算爱因斯坦求和约定.使用爱因斯坦求和约定,许多常见的多元数组运算可以以一种简单的方式表示.这个函数提供了一种计算这种求和的方法.
numpy.count_nonzero : 计算数组中非零元素的数量.
numpy.result_type 和 numpy.min_scalar_type : 这些函数公开了 ufunc 和其他操作使用的底层类型提升,以确定输出的类型.这些函数改进了 numpy.common_type 和 numpy.mintypecode ,它们提供类似的功能,但不匹配 ufunc 实现.
变更#
default error handling#
默认的错误处理方式已经从 print 更改为 warn ,除了 underflow 之外,它仍然是 ignore .
numpy.distutils#
现在支持几个新的编译器来构建 Numpy:OS X 上的 Portland Group Fortran 编译器,PathScale 编译器套件和 Linux 上的 64 位 Intel C 编译器.
numpy.testing#
测试框架获得了 numpy.testing.assert_allclose ,它提供了一种比 assert_almost_equal , assert_approx_equal 和 assert_array_almost_equal 更方便的方式来比较浮点数组.
C API#
除了新迭代器和半精度数据类型的 API 之外,还对 C API 进行了一些其他的添加.ufunc 使用的类型提升机制通过 PyArray_PromoteTypes , PyArray_ResultType 和 PyArray_MinScalarType 公开.添加了一个新的枚举 NPY_CASTING ,它控制允许的类型转换.新的函数 PyArray_CanCastArrayTo 和 PyArray_CanCastTypeTo 使用了它. PyArray_GetArrayParamsFromObject 提供了一种更灵活的方式来处理将任意 Python 对象转换为数组.
弃用的特性#
numpy.histogram 中的 “normed” 关键字已被弃用.它的功能将被新的 “density” 关键字所取代.
移除的功能#
numpy.fft#
函数 refft , refft2 , refftn , irefft , irefft2 , irefftn 被移除,它们是名称中没有 ‘e’ 的相同函数的别名.
numpy.memmap#
memmap 的 sync() 和 close() 方法已被移除.请改用 flush() 和 “del memmap”.
numpy.lib#
不推荐使用的函数 numpy.unique1d , numpy.setmember1d , numpy.intersect1d_nu 和 numpy.lib.ufunclike.log2 已被移除.
numpy.ma#
以下几个不推荐使用的项已从 numpy.ma 模块中删除:
* ``numpy.ma.MaskedArray`` "raw_data" method
* ``numpy.ma.MaskedArray`` constructor "flag" keyword
* ``numpy.ma.make_mask`` "flag" keyword
* ``numpy.ma.allclose`` "fill_value" keyword
numpy.distutils#
numpy.get_numpy_include 函数已被移除,请改用 numpy.get_include .