1.numpy(高效多维数据表示)
NumPy数组可以将许多数据处理任务表述为简洁的数组表达式,否则需要编写循环。用数组表达式代替循环的做法,通常被称为矢量化。通常矢量化数组运算要比等价的纯Python方式快上一两个数量级,尤其是各种数值计算。
假设我们想要在一组值(网格型)上计算函数sqrt(x^2 + y^2)。np.meshgrid()函数接受两个一维数组,并产生两个二维矩阵,对应于两个数组中所有的(x, y)对。
points = np.arange(-5, 5, 0.01) #1000个间隔相等的点。xs, ys = np.meshgrid(points, points)z = np.sqrt(xs ** 2 + ys ** 2)
2.scipy(数值计算)
Scipy在Numpy的基础上则加了众多的数学计算,科学计算以及工程计算中常用的模块,例如线性代数,常微分方程的数值求解,信号处理,图像处理,系数矩阵等。在本章中,将通过实例介绍Scipy中常用的的一些模块。为了方便读者理解,在示例程序中使用matplotlib,TVTK以及Mayavi等扩展绘制二维以及三维图表。
Scipy的special模块是一个非常完整的函数库,其中包含了基本数学函数,特殊数学函数以及Numpy中出现的所有函数。
伽马(gamma)函数γ时概率统计学中经常出现的一个函数,它计算公式如下:<