![深入浅出Python机器学习](https://wfqqreader-1252317822.image.myqcloud.com/cover/94/44510094/b_44510094.jpg)
上QQ阅读APP看书,第一时间看更新
2.3.2 Scipy——强大的科学计算工具集
Scipy是一个Python中用于进行科学计算的工具集,它有很多功能,如计算统计学分布、信号处理、计算线性代数方程等。scikit-learn需要使用Scipy来对算法进行执行,其中用得最多的就是Scipy中的sparse函数了。sparse函数用来生成稀疏矩阵,而稀疏矩阵用来存储那些大部分数值为0的np数组,这种类型的数组在scikit-learn的实际应用中也非常常见。
下面我们用几行代码来展示一下sparse函数的用法:
![](https://epubservercos.yuewen.com/89A715/23721687209561106/epubprivate/OEBPS/Images/Figure-P35_22390.jpg?sign=1739256844-7L8s4H1Sxdco8hzVG0MBV0WiHzEsZOig-0-2e25ab5e17f47b910750945b3e896672)
运行代码得到结果如图2-12所示。
![](https://epubservercos.yuewen.com/89A715/23721687209561106/epubprivate/OEBPS/Images/Figure-P36_2075.jpg?sign=1739256844-QTxtswFPS89MoPO8CMmYuElXy1GdsLDv-0-a80cd4d2ddf0dc789db573a6205eac66)
图2-12 对角矩阵和sparse存储的矩阵
【结果分析】在上面的代码中,我们使用了numpy的eye函数生成了一个6行6列的对角矩阵,所谓对角矩阵,即矩阵从左上角到右下角的对角线位置上的数值都是1,而其他的位置都是0。而用sparse进行转换后,我们可以看到矩阵的形式发生了一些变化。(0,0)表示矩阵的左上角,这个点对应的值是1.0,而(1,1)代表矩阵的第2行第2列,这个点对应的数值也是1.0,依此类推,直到右下角的点(5,5)。
从上面的代码和运行结果中,我们可以大致理解sparse函数的工作原理,在后面的内容中,我们还会接触到Scipy更多的功能。