NumPy 1.5.0 版本说明#
亮点#
Python 3 兼容性#
这是第一个与 Python 3 兼容的 NumPy 版本。对 Python 3 和 Python 2 的支持来自单个代码库。有关更改的详细说明,请访问 https://web.archive.org/web/20100814160313/https://projects.scipy.org.cn/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 的点积方法#
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 宏的符号。大体上,这些符号是类型、类型定义和枚举;数组函数调用保留在 ndarrayobject.h 中。这允许用户包含与数组相关的类型和枚举,而无需关心宏展开及其副作用。
更改#
polynomial.polynomial#
polyint 和 polyder 函数现在检查指定的积分或微分次数是否为非负整数。对于这两个函数,数字 0 都是有效值。
已向 Polynomial 类添加了 degree 方法。
已向 Polynomial 类添加了 trimdeg 方法。它的作用类似于 truncate,不同之处在于参数是结果的所需次数,而不是系数的数量。
Polynomial.fit 现在使用 None 作为拟合的默认域。可以使用 [] 作为域值来指定默认的 Polynomial 域。
polyfit 和 Polynomial.fit 都可以使用权重。
已向 Polynomial 类添加了 linspace 方法,以简化绘图。
添加了 polymulx 函数。
polynomial.chebyshev#
chebint 和 chebder 函数现在检查指定的积分或微分次数是否为非负整数。对于这两个函数,数字 0 都是有效值。
已向 Chebyshev 类添加了 degree 方法。
已向 Chebyshev 类添加了 trimdeg 方法。它的作用类似于 truncate,不同之处在于参数是结果的所需次数,而不是系数的数量。
Chebyshev.fit 现在使用 None 作为拟合的默认域。可以使用 [] 作为域值来指定默认的 Chebyshev 域。
chebfit 和 Chebyshev.fit 都可以使用权重。
已向 Chebyshev 类添加了 linspace 方法,以简化绘图。
添加了 chebmulx 函数。
添加了第一类和第二类切比雪夫点的函数。
histogram#
经过两年的过渡期后,histogram 函数的旧行为已被淘汰,“new”关键字已被删除。
correlate#
correlate 的旧行为在 1.4.0 中已弃用,新的行为(互相关的常用定义)现在是默认行为。