科学计算库Scipy和数据绘图库Matplotlib
在日常的学习工作中,常利用scipy库进行Gamma分布分析、参数估计。
并利用matplotlib进行结果绘制。
1.科学计算库Scipy
Scipy高级科学计算库和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算、统计分析,有很多子模块可以应对不同的应用,例如插值运算,优化算法等等。
并且在NumPy的基础上构建的更为强大,应用领域也更为广泛的科学计算包。需要依赖NumPy的支持进行安装和运行。
SciPy构建一个集成了多种数学算法和方便的函数的Python模块。通过给用户提供一些高层的命令和类,SciPy在python交互式会话中,大大增加了操作和可视化数据的能力。
通过SciPy,Python的交互式会话变成了一个数据处理和一个system-prototyping环境,足以和MATLAB,IDL,Octave,R-Lab,以及SciLab抗衡。
其中有三个功能,在数据挖掘的过程中需要我们熟练掌握:
a.最优化
from scipy import optimize
optimize.minimize(fun, 初始值, method,constraints=约束条件, bounds=约束边界,jac=目标函数的导函数)
fun: 求最小值的目标函数x0:变量的初始猜测值,如果有多个变量,需要给每个变量一个初始猜测值。
method:求极值的方法,官方文档给了很多种。每种方法有很大理论研究空间。 constraints:约束条件,针对fun中为参数的部分进行约束限制。
例:
目标函数: f(x,y) = 2*x*x +y*y + 5*x*y -2*y + 8
求解
约束条件: x-1>=0 y*y - x >0
可编写程序:
b.空间插值
from scipy import interpolate
tx=np.linspace(np.min(x),np.max(x), 100)
ty=np.linspace(np.min(y),np.max(y), 100)
XI,YI = np.meshgrid