深入浅出Python机器学习
上QQ阅读APP看书,第一时间看更新

2.3.2 Scipy——强大的科学计算工具集

Scipy是一个Python中用于进行科学计算的工具集,它有很多功能,如计算统计学分布、信号处理、计算线性代数方程等。scikit-learn需要使用Scipy来对算法进行执行,其中用得最多的就是Scipy中的sparse函数了。sparse函数用来生成稀疏矩阵,而稀疏矩阵用来存储那些大部分数值为0的np数组,这种类型的数组在scikit-learn的实际应用中也非常常见。

下面我们用几行代码来展示一下sparse函数的用法:

运行代码得到结果如图2-12所示。

图2-12 对角矩阵和sparse存储的矩阵

【结果分析】在上面的代码中,我们使用了numpy的eye函数生成了一个6行6列的对角矩阵,所谓对角矩阵,即矩阵从左上角到右下角的对角线位置上的数值都是1,而其他的位置都是0。而用sparse进行转换后,我们可以看到矩阵的形式发生了一些变化。(0,0)表示矩阵的左上角,这个点对应的值是1.0,而(1,1)代表矩阵的第2行第2列,这个点对应的数值也是1.0,依此类推,直到右下角的点(5,5)。

从上面的代码和运行结果中,我们可以大致理解sparse函数的工作原理,在后面的内容中,我们还会接触到Scipy更多的功能。