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 中,该类型表现类似于 floatdouble,C 扩展可以通过公开的半精度浮点 API 为其添加支持。

新迭代器#

已添加一个新的迭代器,用单个对象和 API 取代了现有迭代器和多迭代器的功能。此迭代器适用于不同于 C 或 Fortran 连续内存布局的通用内存布局,并处理标准 NumPy 和自定义广播。ufuncs 提供但在其他地方难以复制的缓冲、自动数据类型转换和可选输出参数,现在通过此迭代器公开。

Legendre、Laguerre、Hermite、HermiteE 多项式在 numpy.polynomial#

扩展了 polynomial 包中可用的多项式数量。此外,类中新增了一个 window 属性,用于指定 domain 映射的范围。这对于 Laguerre、Hermite 和 HermiteE 多项式尤其有用,它们的自然定义域是无限的,并提供了一种更直观的方式来获得正确的数值映射,而无需对定义域进行不自然的技巧操作。

Fortran 假定形状数组和大小函数在 numpy.f2py 中的支持#

F2py 现在支持封装使用假定形状数组的 Fortran 90 例程。以前,这些例程可以从 Python 调用,但相应的 Fortran 例程会将假定形状数组接收为零长度数组,从而导致不可预测的结果。感谢 Lorenz Hüdepohl 指出与假定形状数组例程进行接口的正确方法。

此外,f2py 现在支持自动封装在维度规范中使用双参数 size 函数的 Fortran 例程。

其他新函数#

numpy.ravel_multi_index : 将多索引元组转换为扁平索引数组,并对索引应用边界模式。

numpy.einsum : 评估爱因斯坦求和约定。使用爱因斯坦求和约定,许多常见的多维数组操作可以以简单的方式表示。此函数提供了一种计算此类求和的方法。

numpy.count_nonzero : 计算数组中非零元素的数量。

numpy.result_typenumpy.min_scalar_type : 这些函数公开了 ufuncs 和其他操作用于确定输出类型的底层类型提升机制。它们改进了 numpy.common_typenumpy.mintypecode,后者提供类似功能但与 ufunc 实现不匹配。

变更#

默认错误处理#

默认错误处理已从 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_equalassert_approx_equalassert_array_almost_equal 更便捷的方式来比较浮点数组。

C API#

除了新迭代器和半精度数据类型的 API 外,C API 还增加了一些其他功能。ufuncs 使用的类型提升机制通过 PyArray_PromoteTypesPyArray_ResultTypePyArray_MinScalarType 公开。新增了一个枚举类型 NPY_CASTING,用于控制允许的类型转换种类。这被新函数 PyArray_CanCastArrayToPyArray_CanCastTypeTo 使用。通过 PyArray_GetArrayParamsFromObject 暴露了一种更灵活的方式来处理任意 Python 对象到数组的转换。

已弃用功能#

numpy.histogram 中的“normed”关键字已弃用。其功能将由新的“density”关键字取代。

已移除功能#

numpy.fft#

函数 refftrefft2refftnirefftirefft2irefftn(它们是名称中不带 'e' 的相同函数的别名)已被移除。

numpy.memmap#

memmap 的 sync()close() 方法已移除。请改用 flush() 和“del memmap”。

numpy.lib#

已弃用函数 numpy.unique1dnumpy.setmember1dnumpy.intersect1d_nunumpy.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