1.Numpy
Numpy(Numerical Python的简称)是Python科学计算的基础包,是Python的一个扩展程序库,它不仅针对数组运算提供了大量的函数库,而且它还能够支持维度数组与矩阵运算。它提供了以下功能(不限于此):
- 快速高效的多维数组对象ndarray。
- 用于对数组执行元素级计算以及直接对数组执行数学运算的函数。
- 用于读写硬盘上基于数组的数据集的工具。
- 线性代数运算、傅里叶变换,以及随机数生成。
- 工具(将C、C++、Fortran代码集成到Python)
数据分析方面:作为在算法和库之间传递数据的容器。
2.Pandas
Pandas(Python Data Analysis Library)是基于Numpy 的工具,该工具是为了解决数据分析任务而创建的。Pandas 提供了大量能使我们快速便捷地处理数据的函数和方法。
pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,能更加便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。
用得较多的pandas对象是DataFrame(一个面向列(column-oriented)的二维表结构)和Series(一个一维的标签化数组对象)。
3.Matplotlib
matplotlib是最流行的用于绘制图表和其它二维数据可视化的Python库。
它是一个二维的绘图库,通过Matplotlib,开发者可以仅需要几行代码,便可生成绘图,直方图,条形图,散点图等。
4.Ipython
Ipython 是增强版的Python Shell,目的是提高编写,测试,调试Python代码的数据。
它主要用于交互式数据处理和利用Matplotlib 对数据进行可视化处理。Ipython notebook目前已经整合为 Jupyter notebook。
5.Scipy
Scipy是一组专门解决科学运算中各种标准问题域包的集合,主要包括以下这些包:
- scipy.integrate 数值积分和微分方程求解器
- scipy.linalg 扩展了由numpy.linalg 提供的线性代数例程和矩阵分解功能
- scipy.optimize 函数优化器
- scipy.signal 信号处理工具
- scipy.sparse 稀疏矩阵和稀疏线性矩阵求解器
- scipy.special SPECFUN的包装器
- scipy.stats 标准连续和离散概率分布,各种统计校验方法,以及更好的描述统计方法
- scipy.weave 利用内联C++代码加速数组计算的工具
NumPy和SciPy结合使用,便形成了一个相当完备和成熟的计算平台,可以处理多种传统的科学计算问题。Numpy 和Scipy 的有机集合可以替代Matlab 的计算功能。
6.Scikit-Learn
Scikit-Learn是Python的通用机器学习工具包,它的子模块包括:
- 分类:SVM、近邻、随机森林、逻辑回归等等。
- 回归:Lasso、岭回归等等。
- 聚类:k-均值、谱聚类等等。
- 降维:PCA、特征选择、矩阵分解等等。
- 选型:网格搜索、交叉验证、度量。
- 预处理:特征提取、标准化。
7.Statsmodels
statsmodels是一个统计分析包,与scikit-learn比较,statsmodels包含经典统计学和经济计量学的算法。包括如下子模块:
- 回归模型:线性回归,广义线性模型,健壮线性模型,线性混合效应模型等等。
- 方差分析(ANOVA)。
- 时间序列分析:AR,ARMA,ARIMA,VAR和其它模型。
- 非参数方法: 核密度估计,核回归。
- 统计模型结果可视化。
statsmodels更关注与统计推断,提供不确定估计和参数p-值。相反的,scikit-learn注重预测。