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提供的缓冲、自动数据类型转换和可选输出参数,但在其他地方难以复制,现在通过这个迭代器暴露出来.
Legendre, Laguerre, Hermite, HermiteE 多项式在 numpy.polynomial
中#
扩展多项式包中可用的多项式数量.此外,在类中添加了一个新的 window
属性,以便指定 domain
映射到的范围.这对于自然域是无穷大的 Laguerre、Hermite 和 HermiteE 多项式特别有用,并提供了一种更直观的方式来获取值的正确映射,而无需对域进行不自然的操作.
numpy.f2py
中的 Fortran 假定形状数组和大小函数支持#
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 实现.
变化#
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还进行了许多其他添加.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
#
sync() 和 close() 方法已从 memmap 中移除.请改用 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
代替.