可爱的 Python: Numerical Python
2007-03-29 12:14:19 来源:WEB开发网Numerical Python (通常称为 NumPy) 是一个广为应用的 Python 扩展库,用于快速处理任意维数的固定类型数组。由于底层代码是充分优化的 C 语言代码,因而对数组的主要操作在 NumPy 调用中执行时,速度不再受到 Python 解释器的限制。因为 NumPy 已经取得了这样的成功,所以 NumPy 的开发者将用一个叫做 Numarray 的新模块来取代 NumPy,新模块基本上 (但并不是完全) 与 NumPy 兼容。在本文中,David 介绍了 NumPy 的一般功能,以及 Numarray 将要带来的一些特殊改进。
要了解 Numerical Python 软件包的第一件事情是,Numerical Python 不会让您去做标准 Python 不能完成的任何工作。它只是让您 以快得多的速度去完成标准 Python 能够完成的相同任务。实际上不仅仅如此;许多数组操作用 Numeric 或者 Numarray 来表达比起用标准 Python 数据类型和语法来表达要优雅得多。不过,惊人的速度才是吸引用户使用 Numerical Python 的主要原因。
其实,Numerical Python 只是实现了一个新的数据类型:数组。与可以包含不同类型元素的列表、元组和词典不同的是,Numarray 数组只能包含同一类型的数据。Numarray 数组的另一个优点是,它可以是多维的 -- 但是数组的维度与列表的简单嵌套稍有不同。Numerical Python 借鉴了程序员的实践经验(尤其是那些有科学计算背景的程序员,他们抽象出了 APL、FORTRAN、MATLAB 和 S 等语言中数组的最佳功能),创建了可以灵活改变形状和维度的数组。我们很快会回来继续这一话题。
在 Numerical Python 中对数组的操作是 按元素进行的。虽然二维数组与线性代数中的矩阵类似,但是对它们的操作 (比如乘) 与线性代数中的操作 (比如矩阵乘) 是完全不同的。
让我们来看一个关于上述问题的的具体例子。在纯 Python 中,您可以这样创建一个“二维列表”:
更多精彩
赞助商链接