数据处理之Python中常用的标准库和第三方库

数据处理之Python中常用的标准库和第三方库

引言:

现在的社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。
这个社会产下这么多的数据,我们究竟怎么处理呢,用什么方法,用什么语言处理呢?这些都是问题。
根据时下语言的权威排名中我们也可以很快发现,Python作为一名年轻的语言,却异军突起,后来居上,那到底是什么使得这个如此年轻的孩子一跃成为时下第二大语言呢?总所周知,python的运行速率真的是不敢高攀,所以他的优秀之处肯定在其他方面,其实,python的优势不在于运行效率,而在于开发效率和高可维护性。所以如果我们用python处理大数据,只是纯粹用自己写的算法,什么库也不用,用纯python写其实自讨苦吃,不如使用其他速率更快的语言。
所以,接下来我们就介绍这些使得python能够很优秀的处理大数据的工具:python的标准库和第三方库。

Python的标准库:

Pythōn在安装的时候,就有不少模块也随之安装到本地计算机上。我们能够轻易的免费去使用他,那些在安装Python时就默认已经安装好的模块被称为“标准库”,形象的说来就好比买手机时“自带电池”。
熟悉使用标准库,是Python开发必掌握的技能之一。
下面介绍一些主要的标准库,并附上一些自己书写的实例。

在这里插入图片描述

datetime库实例:

datetime库主要是处理时间或者日期,其中包含五个类,分别为:
date类(处理日期),time类(处理时间),datetime类(处理日期和时间),datedelta类(计算时间间隔),tzinfo(时区信息对象)。
下面是关于datetime库的实例,可以实现关于日期的一些简单的功能:

1.	# -*- coding: UTF-8 -*-  
2.	import datetime  
3.	import calendar   
4.	  
5.	now = datetime.date.today()  
6.	birthday = datetime.date(2000,4,12)  
7.	print(now)  
8.	print(birthday)  
9.	print(datetime.datetime.now())  
10.	cal = calendar.month(2020, 11)  
11.	print("以下输出2020年11月份的日历:")  
12.	print(cal) 

输出结果:
在这里插入图片描述

math库实例:

Python的math库是调用了C语言底层的math库,使用方法基本一样,其中常见包括sin、cos、log(对数)、pow(指数)asin(反三角函数)等等。具体实例如下:

1.	# -*- coding: UTF-8 -*-  
2.	import math  
3.	a = math.pi  
4.	sina = math.sin(a)  
5.	cosa = math.cos(a)  
6.	powa = math.pow(a,2)  
7.	sqrta = math.sqrt(a)  
8.	loga = math.log(a)  
9.	print("sina : %f" %sina)   
10.	print("cosa : %f" %cosa)  
11.	print("powa : %f" %powa)  
12.	print("sqrta: %f" %sqrta)  
13.	print("loga : %f" %loga) 

输出结果:

在这里插入图片描述

os库实例:

os库提供了许多对操作系统的操作函数,下面的例子可以得到python的安装路径:

在这里插入图片描述

random库实例:

random库基本随机函数有seed()和random()两个。
计算机生成随机数是需要随机数种子的,其中seed()函数可以指定一个数为随机数种子。random()函数可以生成随机数,每次生成的数都是不一样的,这是因为在缺省条件下,每次random被调用时都将这时刻的时间作为随机数种子,所以要想方便调试,每次获得相同的随机数,给seed函数赋值即可。
当然还有其他更方便的生成随机数的函数,例如randrange(),可以生成指定范围内的,也可以设置步长,默认为1;randint()可以生成制定范围内的整数等等。
1

.	# -*- coding: UTF-8 -*-  
2.	import random  
3.	  
4.	random.seed(10)  
5.	print(random.random())  
6.	random.seed(10)  
7.	print(random.random())  
8.	random.seed(20)  
9.	print(random.random())  
10.	print(random.randrange(1,100,1)) 

结果如下:
在这里插入图片描述

常用的第三方库:

Python语言提供超过15万个第三方库,几乎覆盖信息技术所有领域,Python库之间广泛联系、逐层封装。
因为第三方库的原因,使得python功能特别强大,这也是近些年来python排名不断高升的主要原因。但是这些库不会随你安装python的时候一起附带上,在我们需要的时候可以使用pip或者其他工具下载,有了这些库,会使我们的python使用的如鱼得水。
下面我们介绍一些主要的第三方库并附上一些我书写的实例。

Numpy、pandas和scipy在数据运算和数据处理等方面很优秀,其中pandas和scipy在numpy的基础上更是添加了Dataframe等数据结构,使得数据处理起来更是方便不少。所以将三者整理在一起。
Numpy库实例
numpy(Numerical Python)提供了python对多维数组对象的支持:ndarray。其具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
下面的例子通过numpy简单的创建了零向量、一矩阵、单位矩阵等数据结构:

1.	# -*- coding: UTF-8 -*-  
2.	import numpy as np  
3.	  
4.	data=[3,5,3,2,6,8,4]  
5.	npdata = np.array(data)  
6.	zero = np.zeros(3,dtype=np.float)  
7.	ones = np.ones((2,3),dtype=np.int32)  
8.	eye = np.eye(3,dtype=np.int16)  
9.	  
10.	print(npdata)  
11.	print(zero)  
12.	print("")  
13.	print(ones)  
14.	print("")  
15.	print(eye)  

运行结果:
在这里插入图片描述

Pandas库实例

pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
Pandas中常见的数据结构有两种:
Series Dataframe
类似一维数组对象 类似多维数组,每列数据可以是不同的数据类型
借助这两种数据结构,我们可以轻松直观地处理标签数据和关系数据。他们更像是一种字典与列表相结合升级的数据结构,功能更强大。处理数据也更方便更快捷。

1.	from pandas import Series,DataFrame  
2.	  
3.	data = {"name":['google','baidu','yahoo'],"marks":[100,200,300],"price":[1,2,3]}  
4.	f1 = DataFrame(data)  
5.	f2 = DataFrame(data,columns=['name','price','marks']) 

运行结果:
在这里插入图片描述
在这里插入图片描述

Jieba库实例

Jieba是一个优秀的中文分词第三方库,并且使用起来很简单,甚至只需要知道一个函数就可以达到我们的目的,即jieba.cut()或者jieba.lcut(),具体实现如下:

1.	import jieba  
2.	  
3.	s = "中国石油大学(北京)一校两地(北京、克拉玛依),北京昌平校区坐落在风景秀丽的军都山南麓,北京校区校园占地面积700余亩;克拉玛依校区位于新疆维吾尔自治区克拉玛依市,校园占地面积7000余亩。学校是一所石油特色鲜明、以工为主、多学科协调发展的教育部直属的全国重点大学,是设有研究生院的高校之一。1997年,学校首批进入国家“211工程”建设高校行列;2006年,成为国家“优势学科创新平台”项目建设高校。2017年,学校进入国家一流学科建设高校行列,全面开启建设中国特色世界一流大学的新征程。"  
4.	arr = jieba.lcut(s)  
5.	print(arr) 

运行结果:
在这里插入图片描述

Wordcloud库实例

wordcloud是优秀的词云展示第三方库,以词语为基本单位,通过图形可视化的方式,更加直观和艺术的展示文本。
Jieba库配合wordcloud库可以实现中文词云。
具体实例小白笔记中已经有所体现,可参考。

Scrapy库:
Scrapy是用python实现的一个为了爬取网站数据,提取结构性数据而编写的应用框架。使用Twisted高效异步网络框架来处理网络通信。其中工作过程如下:

在这里插入图片描述

Requests库&& BeautifulSoup库、re库

Requests、beautifulSoup和re三者搭配也可以很好的完成数据的爬取任务。
Python标准库中提供了:urllib、urllib2、httplib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。
Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。
BeautifulSoup,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XML中查找指定元素变得简单。
接着配合re正则表达式轻松的匹配出我们需要的内容,达到爬取的任务。

Matplotlib库实例&&Pyecharts库实例:

matplotlib是python上的一个2D绘图库,它可以画出很多高质量的图像。综旨就是让简单的事变得更简单,让复杂的事变得可能。我们可以用matplotlib生成 绘图、直方图、功率谱、柱状图、误差图、散点图等 。
pyecharts用于生成Ecahrt图表,适合于数据可视化。echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化。pyecharts 是一个用于生成 Echarts 图表的类库。实际上就是 Echarts 与 Python 的对接。

总结:

这是一个大数据时代,每天都有大量的数据产生,其中数据处理的过程包括数据收集,数据清洗和过滤,数据可视化等等复杂的过程。对应到python中,我们用requests+beautifulSoup或者scrapy进行数据爬取,接着用numpy、pandas等进行缺失值或者异常值处理达到数据清洗的目的,最后通过matplotlib+pyecharts得到赏心悦目的数据可视化结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值