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,但它还没有与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.ComplexWarning现在,当复数转换为实数时,Numpy 会发出 a 。例如:

>>> 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 的点法#

Ndarrays 现在也有点积作为一种方法,它允许将矩阵乘积链写为

>>> 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 中。这允许用户包含与数组相关的类型和枚举,而无需担心宏扩展及其副作用。

变化

多项式.多项式#

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

  • Polynomial 类中添加了度数方法。

  • Polynomial 类中添加了 trimdeg 方法。它的操作类似于截断,只不过参数是结果的所需程度,而不是系数的数量。

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

  • 权重可用于 polyfit 和 Polynomial.fit

  • Polynomial 类中添加了 linspace 方法以简化绘图。

  • 添加了 polymulx 功能。

多项式.切比雪夫#

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

  • Chebyshev 类中添加了 Degree 方法。

  • Chebyshev 类中添加了 trimdeg 方法。它的操作类似于截断,只不过参数是结果的所需程度,而不是系数的数量。

  • Chebyshev.fit 现在使用 None 作为拟合的默认域。可以使用 [] 作为域值来指定默认切比雪夫域。

  • 权重可用于 chebfit 和 Chebyshev.fit

  • Chebyshev 类中添加了 linspace 方法以简化绘图。

  • 添加了 chebmulx 函数。

  • 添加了第一类和第二类切比雪夫点的函数。

直方图#

经过两年的过渡期后,直方图函数的旧行为已被逐步淘汰,并且“新”关键字已被删除。

关联#

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