NumPy 1.5.0 发行说明#

亮点#

Python 3 兼容性#

这是第一个与 Python 3 兼容的 NumPy 版本.对 Python 3 和 Python 2 的支持都是从单个代码库完成的.有关更改的详细说明,请参见 https://web.archive.org/web/20100814160313/http://projects.scipy.org/numpy/browser/trunk/doc/Py3K.txt .

请注意,Numpy 测试框架依赖于 nose,但 nose 还没有Python 3 兼容的版本发布. 但是,可以在 https://web.archive.org/web/20100817112505/http://bitbucket.org/jpellerin/nose3/ 找到一个可用的 Python 3 分支.

预计 SciPy 到 Python 3 的移植将很快完成.

PEP 3118 兼容性#

此版本的 Numpy 完全支持 PEP 3118 描述的新缓冲区协议.在 Python 版本 >= 2.6 上,Numpy 数组公开缓冲区接口,并且 array(),asarray() 和其他函数接受新式缓冲区作为输入.

新功能#

关于将复数转换为实数的警告#

当复数转换为实数时,Numpy 现在会发出一个 numpy.ComplexWarning .例如:

>>> x = np.array([1,2,3])
>>> x[:2] = np.array([1+2j, 1-2j])
ComplexWarning: Casting complex values to real discards the imaginary part

转换确实会丢弃虚部,并且在所有情况下这可能不是预期的行为,因此会发出警告. 可以通过标准方式关闭此警告:

>>> import warnings
>>> warnings.simplefilter("ignore", np.ComplexWarning)

ndarray 的 Dot 方法#

Ndarray 现在也将点积作为一种方法,可以写成矩阵积链的形式:

>>> a.dot(b).dot(c)

而不是更长的替代方法

>>> np.dot(a, np.dot(b, c))

linalg.slogdet 函数#

slogdet 函数返回矩阵行列式的符号和对数. 因为行列式可能涉及许多小/大值的乘积,所以结果通常比通过简单乘法获得的结果更准确.

新的头文件#

新的头文件 ndarraytypes.h 包含来自 ndarrayobject.h 的符号,这些符号不依赖于 PY_ARRAY_UNIQUE_SYMBOL 和 NO_IMPORT/_ARRAY 宏. 广义地说,这些符号是类型,typedef 和枚举; 数组函数调用保留在 ndarrayobject.h 中. 这允许用户包含数组相关的类型和枚举,而无需关心宏扩展及其副作用.

变更#

polynomial.polynomial#

  • polyint 和 polyder 函数现在检查指定的积分或导数次数是否为非负整数.数字 0 是这两个函数的有效值.

  • 已将 degree 方法添加到 Polynomial 类.

  • 已将 trimdeg 方法添加到 Polynomial 类. 它的操作方式类似于 truncate,不同之处在于参数是所需的结果的度数,而不是系数的数量.

  • Polynomial.fit 现在使用 None 作为拟合的默认域. 默认的 Polynomial 域可以通过使用 [] 作为域值来指定.

  • 权重可以在 polyfit 和 Polynomial.fit 中使用

  • linspace 方法已添加到 Polynomial 类,以方便绘图.

  • 添加了 polymulx 函数.

polynomial.chebyshev#

  • chebint 和 chebder 函数现在检查指定的积分或导数次数是否为非负整数.数值 0 对于这两个函数都是有效值.

  • 已向 Chebyshev 类添加了一个 degree 方法.

  • 已向 Chebyshev 类添加了一个 trimdeg 方法.它的操作类似于 truncate,只是参数是所需的结果的次数,而不是系数的数量.

  • Chebyshev.fit 现在使用 None 作为拟合的默认域.可以通过使用 [] 作为域值来指定默认的 Chebyshev 域.

  • 权重可以在 chebfit 和 Chebyshev.fit 中使用.

  • 已向 Chebyshev 类添加了一个 linspace 方法,以简化绘图.

  • 添加了 chebmulx 函数.

  • 添加了第一类和第二类 Chebyshev 点的函数.

histogram#

经过两年的过渡期后,histogram 函数的旧行为已被淘汰,并且已删除 “new” 关键字.

correlate#

correlate 的旧行为在 1.4.0 中已被弃用,新行为(互相关的常用定义)现在是默认行为.