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 和自定义广播。ufuncs 提供的缓冲、自动数据类型转换和可选输出参数(难以在其他地方复制)现在由此迭代器公开。
numpy.polynomial
中的勒让德、拉盖尔、埃尔米特、埃尔米特E 多项式#
扩展多项式包中可用的多项式数量。此外,为类添加了一个新的 window
属性,以指定 domain
映射到的范围。这对于拉盖尔、埃尔米特和埃尔米特E 多项式最有用,它们的自然域是无限的,并且提供了一种更直观的方式来获取值的正确映射,而无需使用不自然的技巧来处理域。
在 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
:这些函数公开了 ufuncs 和其他操作用来确定输出类型的底层类型提升。这些函数改进了 numpy.common_type
和 numpy.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_equal、assert_approx_equal 和 assert_array_almost_equal 相比,它提供了一种更方便的方式来比较浮点数组。
C API
#
除了新迭代器和半数据类型的 API 外,C API 还进行了一些其他添加。ufuncs 使用的类型提升机制通过 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
。