Python数据分析常见库介绍之Scipy

Scipy是一个高级的科学计算库,它和

Numpy

联系很密切,Scipy一般都是操控Numpy数组来进行科学计算,Scipy让Python成为了半个MATLAB。Scipy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算,而这些功能都是我们在之后进行数据分析需要的。下面是一些常用的Scipy的子模块。

Scipy是依赖于numpy的,所以在安装Scipy前需要先安装好Numpy。安装Scipy的方法和安装Numpy的方法是一样的,这里不再提及。由于Scipy非常的完备且复杂,在日常的数据分析中,并不是每一个都会用上,本文就简单介绍几个常用的并且比较有趣的子模块。

输入与输出(scipy.io)

scipy.io模块提供了多种功能来解决不同格式的文件输入和输出,包括Matlab,Wave,Arff,Matrix Market等等,最常见的是Matlab格式的。

loadmat()是打开一个Matlab文件,savemat()是保存一个Matlab文件,通过whosmat()可以列出Matlab文件中的变量。

优化算法(scipy.optimize)

Scipy的optimize模块提供了许多数值优化算法

非线性方程组求解(fsolve())

最小二乘拟合(leastsq())

除了上述的方程组求解和最小二乘拟合,Optimize还提供了诸如正弦波或者余弦波的曲线拟合(curve_fit()),全局最小值(basinhopping())等等函数,基本能够满足我们进行优化求解的需求。

统计函数(scipy.stats)

stats模块提供了大约80种连续随机变量和10多种离散分布变量,连续的和离散的随机变量都被包含在内。所有的连续随机变量都是rv_continuous的派生类的对象,而所有的离散随机变量都是rv_discrete的派生类的对象。此处以最常见的正态分布为例了解一下stats的基本用法。

生成服从指定分布的随机变量

概率密度函数和累积分布函数

统计检验

stats子模块也包括了诸如kstest 和normaltest等样本测试函数,用来检测样本是否服从某种分布。

除此之外,stats模块中还提供了一些描述函数,如下表,这里就不详细讲了,可以通过官网文档进行相关学习。

聚类

树状图如下:

k-means 聚类

有些时候我们可能不知道最终究竟聚成多少类,一个办法是用层次聚类的结果进行初始化。当然也可以直接输入某个数值。

通过上面的一些代码演示,相信你一定对Scipy有了一定的了解。如果你遇到了什么不能解决的问题,可以自行搜索获得解答。

在下一次的推送中,我们将对Pandas库进行相关的学习。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180621G0S6VF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券