购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 Python库

在整本书中,我们都着眼于如何使用现有的库来避免重复工作,从而使程序开发工作事半功倍。通常,开发大量原始代码是一个费时费力的工作,为了避免这种情况,我们会尽可能多地使用库中已有的类来创建对象,通常仅需要一行代码。因此,库能够帮助我们使用适量的代码执行重要的任务。在本书中,我们会使用多种Python标准库、数据科学库和第三方库。

1.4.1 Python标准库

Python标准库 提供了丰富的功能,包括文本/二进制数据处理、数学运算、函数式编程、文件/目录访问、数据持久化、数据压缩/归档、加密、操作系统服务、并发编程、进程间通信、网络协议、JSON / XML /其他Internet数据格式、多媒体、国际化、GUI、调试、分析等。下面列出了在本书示例中使用的一部分Python标准库模块。

本书中使用的一些Python标准库模块

collections —建立在列表、元组、字典和集合基础上的加强版数据结构。

csv —处理用逗号分隔值的文件。

datetime, time —日期和时间操作。

decimal —定点或浮点运算,包括货币计算。

doctest —通过验证测试或嵌入在 docstring 中的预期结果进行简单的单元测试。

json —处理用于Web服务和NoSQL文档数据库的JSON(JavaScript Object Notation)数据。

math —常见的数学常量和运算。

os —与操作系统进行交互。

queue — 一种先进先出的数据结构。

random —伪随机数操作。

re —用于模式匹配的正则表达式。

sqlite3 —SQLite关系数据库访问。

statistics —数理统计函数,如均值、中值、众数和方差等。

string —字符串操作。

sys —命令行参数处理,如标准输入流、输出流和错误流。

timeit —性能分析。

1.4.2 数据科学库

Python拥有一个庞大且仍在快速增长的开源社区,社区中的开发者来自许多不同的领域。该社区中有大量的开源库是Python受欢迎的最重要的原因之一。本书的目标之一是通过示例和案例研究让读者体会到Python编程的趣味性和挑战性,同时也会带领读者动手实践数据科学、关键数据科学库等相关工作。许多任务只需要几行Python代码就可以完成,这会令人感到很神奇。下面列出了一些流行的数据科学库,大部分都会在本书的数据科学示例中用到。在数据可视化部分,我们将使用Matplotlib、Seaborn和Folium。当然,可实现数据可视化的库远不止这三个,有关Python可视化库的汇总可以参阅http://pyviz.org/。

用于数据科学的流行的Python库

科学计算与统计

NumPy (Numerical Python)—Python没有内置的数组数据结构。它提供的列表类型虽然使用起来更方便,但是处理速度较慢。NumPy提供了高性能的 ndarray 数据结构来表示列表和矩阵,同时还提供了处理这些数据结构的操作。

SciPy (Scientific Python)—SciPy基于NumPy开发,增加了用于科学处理的程序,例如积分、微分方程、额外的矩阵处理等。 scipy.org 负责管理SciPy和NumPy。

StatsModels —为统计模型评估、统计测试和统计数据研究提供支持。

数据处理与分析

pandas —一个非常流行的数据处理库。pandas充分利用了NumPy的 ndarray 类型,它的两个关键数据结构是 Series (一维)和 DataFrame (二维)。

可视化

Matplotlib —可高度定制的可视化和绘图库。Matplotlib可以绘制正规图、散点图、柱状图、等高线图、饼图、矢量场图、网格图、极坐标图、3D图以及添加文字说明等。

Seaborn —基于Matplotlib构建的更高级别的可视化库。与Matplotlib相比,Seaborn改进了外观,增加了可视化的方法,并且可以使用更少的代码创建可视化。

机器学习、深度学习和强化学习

scikit-learn —一个顶级的机器学习库。机器学习是AI的一个子集,深度学习则是机器学习的一个子集,专注于神经网络。

Keras —最易于使用的深度学习库之一。Keras运行在TensorFlow(谷歌)、CNTK(微软的深度学习认知工具包)或Theano(蒙特利尔大学)之上。

TensorFlow —由谷歌开发,是使用最广泛的深度学习库。TensorFlow与GPU(图形处理单元)或谷歌的定制TPU(Tensor处理单元)配合使用可以获得最佳的性能。TensorFlow在人工智能和大数据分析中有非常重要的地位,因为人工智能和大数据对数据处理的需求非常巨大。本书使用TensorFlow内置的Keras版本。

OpenAI Gym —用于开发、测试和比较强化学习算法的库和开发环境。

自然语言处理

NLTK (Natural Language Toolkit)—用于完成自然语言处理(NLP)任务。

TextBlob —一个面向对象的NLP文本处理库,基于NLTK和模式NLP库构建,简化了许多NLP任务。

Gensim —功能与NLTK类似。通常用于为文档合集构建索引,然后确定另一个文档与索引中每个文档的相似程度。 LGCSHpFLDKs0NFh/HHKtN8w1BJyJBInKFDPEXiMHg4XfI/zR6x2L6Lfjq6/U8mil

点击中间区域
呼出菜单
上一章
目录
下一章
×