数据科学与机器学习相关的Python工具有哪些?
Posted 人邮异步社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据科学与机器学习相关的Python工具有哪些?相关的知识,希望对你有一定的参考价值。
1 NumPy
NumPy(Numerical Python)是Python的一个扩展程序库,目前已经成为Python中用于科学计算的基础包。NumPy提供了高性能的向量、矩阵以及多维数据结构及计算方法。
NumPy包的核心是ndarray对象。它封装了与Python原生的数据类型相同的n维数组,其中有许多操作以C语言及Fortran语言编写并编译来实现,从而提供了极佳的性能。
由于NumPy封装了大量的复杂计算方法,因此使代码变得极为简洁、高效。例如,对于两个数组a和b的加法操作,如果用C语言实现,则需要通过两层循环求和,代码如下:
for (i = 0; i < rows; i++)
for (j = 0; j < columns; J++)
c[j][j] = a[i][j] + b[i][j];
而用NumPy实现,只需要写作:
c = a + b
代码非常简洁、易读,且性能高效。当然,计算机进行c = a + b的数组求和操作,本质上还是由上述C语言的循环方式完成的,只是NumPy已经在内部实现了这些复杂的操作,我们只需引用而已。
使用NumPy前,首先需要安装和导入NumPy。本书的读者按前文所述安装Anaconda,即默认已经安装了NumPy,只需引用即可。
图4-1给出了几个简单的概念与操作,包括arange()、reshape()、数组转置等。
图4-1
数组的标量运算,例如求平方等操作,是对各元素进行操作的。同维度大小的数组求和等操作,是按各对应元素进行操作的。NumPy还提供了各对应位置元素的乘法操作,表达式为a*b。
但大家知道,矩阵乘法并不是指对应位置元素相乘,其定义如图4-2中的单元格11下的注释所示。读者可以想象,如果直接用C语言写出矩阵乘法的代码,需要写多少行。但使用NumPy,只需要写a @ b即可。
关于NumPy中数组及矩阵的运算举例,如图4-2所示。
图4-2
上述示例代码参见本书配套源代码中的NumPyDemo.ipynb文档。
2 Pandas
Pandas是Python的一个用于数据分析与处理的包。Pandas提供了灵活、高效、易于表述的关系型及标签化的数据结构,以及高效地操作大型数据集所需的函数与方法。
Pandas提供了两个重要的数据结构:Series和DataFrame。Series是一维标签化同类型数组。DataFrame是二维标签化表格型数据结构。图4-3中的示例简要展示了DataFrame的标签化数据结构特点。
图4-3
从这个示例中可以看到,DataFrame类似于二维表,列名dept、qty即数据的标签(label)。而每一行都有一个索引,从图4-3的Out[2]中可以看到,索引从0开始一直到6。定义DataFrame类似于定义字典,DataFrame的列名(标签)相当于字典的键。有了Pandas中的上述数据结构,就可以非常方便、高效地进行数据处理了。
3 Matplotlib
Matplotlib是非常方便、实用的用于科学计算的可视化包。Matplotlib是一个Python 2D绘图库,以多种格式和跨平台交互环境生成高质量的图形。
在Matplotlib中可以用非常简洁的代码生成直方图、条形图、散点图等。Matplotlib官网给出了大量的案例,这些案例有助于我们理解和使用Matplotlib。
图4-4演示了Matplotlib的简洁性。也就是说,在import matplotlib后,对于4.1.2节Pandas中DataFrame的数据,只需单元格8中的一行代码即可画出其折线图。
图4-4
图4-5所示为利用Matplotlib画出正弦曲线。
图4-5
关于Matplotlib的更多内容,读者可参考Matplotlib官网或相关资源。
基于Matplotlib,有一个更强大的图形可视化工具seaborn。seaborn在Matplotlib的基础上进行了更高级的封装,使我们可以更方便地绘制出更具感染力的图形。关于seaborn的具体内容,请读者参考其官网及相关资源。
4 SciPy
SciPy(Scientific Python)是基于NumPy的用于科学计算的函数集合包。SciPy最早是Python封装的常用数学计算Fortran库,并基于此逐步发展为强大的用于科学计算的工具包。以下是SciPy的一些子模块。
- scipy.constants:物理常量和数学常量。
- scipy.fftpack:快速傅里叶变换。
- scipy.integrate:积分。
- scipy.interpolate:插值。
- scipy.linalg:线性代数。
- scipy.ndimage:n维图像包。
- scipy.signal:信号处理。
- scipy.spatial:空间数据结构。
- scipy.stats:统计。
在图4-6所示的示例中,我们根据给定的几个点通过插值函数得到一条平滑曲线。
图4-6
在这个示例中,第6行和第7行在一条正弦曲线上取8个点。第10行创建了一个插值函数,其类型为三次插值。第13行取出x轴上的100个点。第14行根据第10行得到的插值函数,计算这100个点的y轴坐标。第17行和第18行画出初始的8个点。第19行和第20行根据插值得到的100个点画出曲线。
我们可以看到,scipy.interpolate封装了插值计算的复杂过程,我们可以方便、简洁地直接调用这些函数。
本文摘自《Jupyter入门与实战》
本书全面讲解Jupyter的功能、应用、体系架构、配置和部署等内容。全书共8章,前4章面向希望学习Python、数据科学及人工智能相关知识,但尚无软件开发基础的读者,以零起点的方式讲述Jupyter的功能与操作,并以Jupyter Notebook为工具,讲述Python的基础知识,以及使用Python开展数据科学工作的入门内容;后4章深入讲述Jupyter的高级应用、配置、管理,以及JupyterLab和JupyterHub等相关内容。本书尽量涵盖Jupyter各方面的内容,致力于成为一本Jupyter完全手册。
本书适合Jupyter及Python初学者阅读学习,也适合Python程序员,有Jupyter使用基础的软件开发人员、数据科学及人工智能的从业人员,配置和部署Jupyter系统的IT管理员阅读。
以上是关于数据科学与机器学习相关的Python工具有哪些?的主要内容,如果未能解决你的问题,请参考以下文章
AI:Python与人工智能相关的库/框架(机器学习&深度学习&数据科学/计算机视觉/自然语言处理)的简介案例应用之详细攻略