2-工具与软件-3-数据分析实战
使用Python进行数据分析,对其编程、库,以及⽤于数据分析的⼯具的相关学习与研究。
一.准备工作
1 重要的Python库
NumPy
NumPy(Numerical Python的简称)是Python科学计算的基础包。详见它提供了以下功能(不限于此):
- 快速⾼效的多维数组对象ndarray。
- ⽤于对数组执⾏元素级计算以及直接对数组执⾏数学运算的函数。
- ⽤于读写硬盘上基于数组的数据集的⼯具。
- 线性代数运算、傅⾥叶变换,以及随机数⽣成。-成熟的C API, ⽤于Python插件和原⽣CC++、Fortran代码访问NumPy的数据结构和计算⼯具。
除了为Python提供快速的数组处理能⼒,NumPy在数据分析⽅⾯还有另外⼀个主要作⽤,即作为在算法和库之间传递数据的容器。对于数值型数据,NumPy数组在存储和处理数据时要⽐内
置的Python数据结构⾼效得多。此外,由低级语⾔(⽐如C和Fortran)编写的库可以直接操作NumPy数组中的数据,⽆需进⾏任何数据复制⼯作。因此,许多Python的数值计算⼯具要么使
⽤NumPy数组作为主要的数据结构,要么可以与NumPy进⾏⽆缝交互操作。
pandas
pandas提供了快速便捷处理结构化数据的⼤量数据结构和函数。⾃从2010年出现以来,它助使Python成为强⼤⽽⾼效的数据分析环境。⽤得最多的pandas对象是DataFrame,它是⼀个⾯向列(column-oriented)的⼆维表结构,另⼀个是Series,⼀个⼀维的标签化数组对象。详见
pandas兼具NumPy⾼性能的数组计算功能以及电⼦表格和关系型数据库(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,以便更为便捷地完成重塑、切⽚和切块、聚合以及选取数据⼦集等操作。因为数据操作、准备、清洗是数据分析最重要的技能。
pandas这个名字源于panel data(⾯板数据,这是多维结构化数据集在计量经济学中的术语)以及Python dataanalysis(Python数据分析)。
matplotlib
matplotlib是最流⾏的⽤于绘制图表和其它⼆维数据可视化的Python库。它⾮常适合创建出版物上⽤的图表。虽然还有其它的Python可视化库,matplotlib却是使⽤最⼴泛的,并且它和其它⽣态⼯具配合也⾮常完美。
IPython和Jupyter
IPython项⽬起初是Fernando Pérez在2001年的⼀个⽤以加强和Python交互的⼦项⽬。在随后的16年中,它成为了Python数据栈最重要的⼯具之⼀。虽然IPython本身没有提供计算和数据分析的⼯具,它却可以⼤⼤提⾼交互式计算和软件开发的⽣产率。IPython⿎励“执⾏-探索”的⼯作流,区别于其它编程软件的“编辑-编译-运⾏”的⼯作流。它还可以⽅便地访问系统的shell和⽂件系统。因为⼤部分的数据分析代码包括探索、试错和重复,IPython可以使⼯作更快。IPython shell 和Jupyter notebooks特别适合进⾏数据探索和可视化。
⼤部分Python都要⽤到IPython,包括运⾏、调试和测试代码。
SciPy
SciPy是⼀组专⻔解决科学计算中各种标准问题域的包的集合,主要包括下⾯这些包:
- scipy.integrate:数值积分例程和微分⽅程求解器。
- scipy.linalg:扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能。
- scipy.optimize:函数优化器(最⼩化器)以及根查找算法。
- scipy.signal:信号处理⼯具。
- scipy.sparse:稀疏矩阵和稀疏线性系统求解器。
- scipy.special:SPECFUN(这是⼀个实现了许多常⽤数学函数(如伽玛函数)的Fortran库)的包装器。
- scipy.stats:标准连续和离散概率分布(如密度函数、采样器、连续分布函数等)、各种统计检验⽅法,以及更好的描述统计法。
NumPy和SciPy结合使⽤,便形成了⼀个相当完备和成熟的计算平台,可以处理多种传统的科学计算问题。
scikit-learn
2010年诞⽣以来,scikit-learn成为了Python的通⽤机器学习⼯具包。它的⼦模块包括:
- 分类:SVM、近邻、随机森林、逻辑回归等等。
- 回归:Lasso、岭回归等等。
- 聚类:k-均值、谱聚类等等。
- 降维:PCA、特征选择、矩阵分解等等。
- 选型:⽹格搜索、交叉验证、度量。
- 预处理:特征提取、标准化。
与pandas、statsmodels和IPython⼀起,scikit-learn对于Python成为⾼效数据科学编程语⾔起到了关键作⽤。
statsmodels
statsmodels是⼀个统计分析包,与scikit-learn⽐较,statsmodels包含经典统计学和经济计量学的算法。包括如下⼦模块:
- 回归模型:线性回归,⼴义线性模型,健壮线性模型,线性混合效应模型等等。
- ⽅差分析(ANOVA)。
- 时间序列分析:AR,ARMA,ARIMA,VAR和其它模型。
- ⾮参数⽅法: 核密度估计,核回归。
- 统计模型结果可视化。
statsmodels更关注与统计推断,提供不确定估计和参数p-值。相反的,scikit-learn注重预测。
二.Python语法基础
1.IPython
快捷键
有许多键盘快捷键进⾏导航提示(类似Emacs⽂本编辑器或UNIX bash Shell)和交互shell的历史命令。
魔术命令
IPython同时集成了Matplotlib
三.Python的数据结构、函数和⽂件
P85
update time:
2023-09-22 16:57:38.877910