更新时间:2023年03月28日17时42分 来源:传智教育 浏览次数:
Python作为目前较为热门的编程语言,它已经渗入数据分析、数据挖掘、机器学习等以数据为支撑的多个领域,并分别为这些领域提供了功能强大的库。这些库中会涉及一些数据预处理的操作,以帮助开发人员解决各种各样的数据问题。Python中常用的与数据预处理相关的库包括 NumPy、pandas、SciPy、scikit-leamn等,关于这些库的具体介绍如下。
NumPy(源于Numeric和Python)是一个Python开源的、高性能的基础科学计算库,该库具有以下特点。
(1)提供了一个可高效处理复杂数据的N维数组对象ndarray。该对象的存储效率和输人/输出性能远远优于Python中等价的数据结构。
(2)大部分代码由C语言编写,性能比纯Python 代码高得多。
(3)无须循环,便可完成类似MATL.AB中的矢量运算。
(4)支持线性代数、随机数生成以及傅里叶变换功能。
pandas是一个基于NumPy的库,是专门为实现数据分析任务而创建的。pandas中纳人了大量库和标准的数据模型,并提供了高效地操作大型数据集的函数和方法,方便用户快速地处理大型数据集。pandas具有以下特点。
(1)提供了数据结构DataFrame,可以自由地插人或删除数据结构中的列。
(2)提供了智能数据对齐和缺失数据的集成处理。
(3)提供了基于标签的切片、花式索引和布尔索引。
(4)提供了分组聚合功能。
(5)提供了高性能的合并数据功能。
(6)提供了时间序列的功能。
(7)提供了读取与写人数据的功能。
(8)提供了数据预处理功能。
(9)提供了数据可视化功能。
SciPy是一个面向Python的开源科学计算库。该库自2001年首次发布以来,已经成为Python中科学算法的行业标准。SciPy库建立在NumPy库之上,它拥有数以千计的开发包和超过150000个依赖存储库,具备线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等功能。
scikit-learn是一款Python中专门针对机器学习应用而开发的开源库。与其他开源项目相比,scikit-leam库的特点是主要是由社区成员自发维护,并不断地拓展机器学习领域内的功能。scikit-lear库建立于NumPy、SciPy和matplotlib之上,它不仅支持分类、回归、降维和聚类这四大机器学习算法,包括支持向量机、随机森林、梯度提升、k均值和DBSCAN,还提供了特征提取、数据处理、模型评估三大模块,在学术界颇受欢迎。
除了前面介绍的库之外,我们还可以使用一些图形化工具来处理数据。OpenRefine是一款简单好用的数据清理工具,它与传统的Excel工具很像,但其工作方式更像数据库,能够以列或字段的方式来操作数据。OpenRefine工具可以帮助用户在使用数据之前完成清理操作,并通过浏览器运行界面的方式直观地展示对数据的相关操作。限于篇幅,本书主要围绕NumPy、pandas这两个主流的库进行介绍,也会介绍一款专业的图形化工具OpenRefine。