— 1 —
Python程序设计
— 2 — — 2 —
学习要求
 了解:网络爬虫、数据分析、文本处理、数据可视
化、用户图形界面、机器学习、Web开发、游戏
开发等领域的第三方库的名称。
 理解:Numpy数组的概念和创建方法
 掌握:基本的Python 内置函数和标准库的使用,
第三方库的获取和安装。
 应用:能够创建Numpy数组并完成数组操作。
— 3 — — 3 —
计算生态
 计算思维是人类科学思维活动的重要组成部分。人
类在认识世界、改造世界的过程中表现为三种基本
的思维特征:
 (1) 以实验和验证为特征的实证思维;(2) 以推理
和演绎为特征的逻辑思维;(3) 以设计和构造为特
征的计算思维,以计算机学科为代表。
 计算思维指的是抽象实际问题的计算特性,利用计
算机求解,计算思维的本质是抽象(abstraction)
和自动化(automation)。
— 4 — — 4 —
计算生态
 程序设计方法论是指:自顶向下设计和自底向上执
行贯穿程序设计和执行的整个过程。
 在解决一个复杂问题时,我们通常是将其拆分为几
个小问题,然后用相同的方法逐个攻破小问题,然
后把所有的碎片组合起来,就可以得到该问题的解
决方法。
— 5 — — 5 —
计算生态
 近20年的开源运动产生了深植于各信息技术领域
的大量可重用资源,直接有力地支撑了信息技术超
越其他技术领域的发展速度,形成了“计算生态”。
 Python作为一门开源语言,其诞生之初就致力于
开源开放,而且由于Python有非常灵活的编程方
式,很多采用C、C++等语言编写的专业库经过的
接口封装亦可以供Python使用。
— 6 — — 6 —
计算生态
 正是因为其胶水特性,Python迅速建立了全球最
大的编程语言开放社区,建立了十几万个第三方库
的庞大规模,构建了强大的计算生态。
 Python计算生态包含Python的标准库和Python
第三方库。
— 7 — — 7 —
计算生态
 正是因为其胶水特性,Python迅速建立了全球最
大的编程语言开放社区,建立了十几万个第三方库
的庞大规模,构建了强大的计算生态。
 Python计算生态包含Python的标准库和Python
第三方库。
 通常通过安装工具pip管理大部分第三方库。
— 8 — — 8 —
计算生态
 模块(Module):一个完整的Python文件即是一个模块,
它通常指逻辑上的组织方式。Python中常用import 模块
的方式将现成模块中的函数、类等重用到其他代码块中。
 包(Package):一个有层次的文件目录结构,定义了一
个由模块和子包组成的Python应用程序执行环境。
 库(Library):一组具有相同功能的模块的集合。Pyhon
之所以流行其重要原因就是具有强大的标准库、第三方库
及自定义模块。
— 9 — — 9 —
Contents Page
目录页
Python标准库
库的导入与使用
Python第三方库
— 10 —
10.1库的导入与使用
模块导入的语法格式:
(1)导入模块:
import 模块名 [AS 标识符] #导入模块(或同时取别名)
(2)导入模块中所有项目(函数、类或变量):
from 模块名 import *
(3)导入模块中指定项目:
from 模块名 import 项目名 [AS 标识符]
(4)导入指定包模块中指定项目:
from 包名.模块名 import 项目名 [AS 标识符]
— 11 — — 11 —
Contents Page
目录页
Python标准库
库的导入与使用使用
Python第三方库
— 12 —
10.1库的导入与使用
random库包含各种随机数生成函数,以及各种
根据概率分布生成随机数的函数。
10.2.1 random库
— 13 —
10.1库的导入与使用
10.2.1 random库
函数名 说明
seed(a=None) 初始化随机数种子,默认值为当前系统时间
random() 生成一个[0.0,1.0]之间的随机小数
randint(a,b) 生成一个[a,b]之间的整 数
getrandbits(k) 生成一个k比特长度的随机整数
randrange(start,stop[,step
])
生成一个[start,stop]之间以step为步数的随机整数
uniform(a,b) 生成[a,b]之间的随机小数
choice(seq) 从序列类型(例如列表)中随机返回一个元素
shuffle(seq) 将序列类型中元素随机排列,返回打乱后的序列
sample(pop,k) 从pop类型中随机选取k个元素,以列表类型返回
— 14 —
10.1库的导入与使用
例10-1
1 import random
2 print(random.randint(1,20))
# 产生 1 到 20 的一个整数型随机数
3 print(random.random()) # 产生 0 到 1 之间的随机浮点数
4 print(random.uniform(2.2,16.3))
# 产生 2.2 到 16.3 之间的随机浮点数
5 print(random.choice('sunday'))
# 从序列中随机选取一个元素
6 print(random.randrange(1,100,7))
# 生成从1到100的间隔为7的随机整数
7 list1=[8,'s',5.0,24,'moon'] # 将序列list1中的元素顺序打乱
8 random.shuffle(list1)
9 print(list1)
— 15 —
10.1库的导入与使用
time库是Python中的时间标准库,time库能够
表达计算机时间,提供获取系统时间并格式化输
出的方法,提供系统级精确计时功能,可以用来
分析程序性能和让程序运行暂停。
time库主要包括时间处理、时间格式化和计时
三方面。
时间处理函数主要包括time()函数、gettime()
函数、localtime()函数和ctime()函数。
10.2.2 time库
— 16 —
10.1库的导入与使用
datetime库用于包含表示日期的date对象、时
间time对象和表示日期的datetime对象。
datetime库包含datetime.MINYEAR和
datetime.MAXYEAR两个常量,用于表示最小
年份和最大年份,最小年份为1,最大年份为
9999。
10.2.3 datetime库
— 17 —
10.1库的导入与使用
datetime.date类的date对象表示理想化日历
中的日期(年、月和日),公历1年1月1日被称
为第一天,依次往后推。today()函数用于返回
当前日期的date对象,通过其对象实例可以获
取年、月、日等信息。
10.2.3 datetime库
— 18 —
10.1库的导入与使用
例10-2
1 from datetime import date #导入时间库
2 now=date.today() #取当前时间
3 print(now)
4 birthday=date(2001,4,19)
5 print(birthday)
6 age=now-birthday
#假设年龄=当前日期-生日日期
7 print(age)
— 19 — — 19 —
Contents Page
目录页
Python绘图
库的导入与使用
Python第三方库
— 20 —
10.3 Python第三方库
Python第三方库广泛应用于文件读写、网络抓取和解析、数
据连接、数清洗转换、数据计算和统计分析、图像和视频处
理、音频处理、数据挖掘/机器学习/深度学习、数据可视化、
交互学习和集成开发以及其他Python协同数据工作工具。
文件的读写包括常见的txt、Excel、xml、二进制文件以及
其他格式的数据文本,主要用于本地数据的读写。Pdfminer
库可以从PDF文档中提取各类信息,Openpyxl则能够处理
Microsoft Excel文档,Python-docx用来处理Microsoft
Word文档,Beautifulsoup4可以从HTML和XML文件中解
析出数据。
— 21 —
10.3 Python第三方库
网络抓取和解析用于从互联网中抓取信息,并对HTML对象
进行处理,Requests库可以简洁且简单的处理HTTP请求,
Scrapy是快速、高层次的Web获取框架。
数据计算和统计分析主要用于数据探查、计算和初步数据分
析等工作。Numpy库提供开源数值计算扩展,Scipy库提供
一组专门解决科学和工程计算不同场景的主题工具,Pandas
库可高效地操作大型数据集,能提供类似于数据库中的切片、
切块、聚合、选择子集等精细化操作。
— 22 —
10.3 Python第三方库
数据挖掘、机器学习和深度学习等是Python进行数据建模
和挖掘学习的核心模块。Scikit-learn库提供了简单且高效
的数据挖掘和数据分析工具;TensorFlow是谷歌的第二代
机器学习系统,内建深度学习的扩展支持,任何能够用计算
流图形来表达的计算,都可以使用;PyTorch是FaceBook
推出的深度学习框架,它基于Python产生,它提供的动态
计算图是显著区别于Tensorflow等其他学习框架的地方;
Theano库支持执行深度学习中大规模神经网络算法的运算;
Keras是一个用Python编写的高级神经网络API,能够运行
在TensorFlow或者Theano之上,它的开发重点是实现快
速实验。
— 23 —
10.3 Python第三方库
数据可视化主要用于做数据结果展示、数据模型验证、图形
交互和探查等方面。Matplotlib是Python的2D绘图库,它
以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别
的图形,开发者可以仅需要几行代码,便可以生成多种高质
量图形;TVTK是图形应用函数库,是专业可编程的三维可视
化工具,Mayavi提供了方便实用的可视化软件。
— 24 —
10.3 Python第三方库
游戏开发方面,Cocos2D库提供构建2D游戏和图形界面交
互式应用的框架,基于OpenGL的游戏开发图形渲染功能;
PyGame提供简单的游戏开发功能库,支持游戏对外部输入
的响应机制及角色构建和交互机制,是Python游戏入门最主
要的第三方库;Panda3D提供Python和C++两种接口,支
持很多先进特性:法线贴图、光泽贴图、卡通渲染等,是一
个开源、跨平台的3D渲染和游戏开发库。
— 25 —
10.3 Python第三方库
Web开发方面,Django是最流行的开源Web应用框架,
Pyramid是通用、开源的Python Web应用程序开发框架,
Flask则是轻量级Web应用框架。
这些第三方库都需要安装,有些还需要配置后才能使用。注
意是在Windows命令行中使用pip命令安装第三库,而不是
Python交互命令行环境中。
— 26 —
10.3 Python第三方库
安装
10.3.1 NumPy库
NumPy库安装命令如下(不区分大小写):
pip install numpy
— 27 —
10.3 Python第三方库
1. 创建NumPy数组
10.3.1 NumPy库
1 import numpy as np
2 a=np.array([1,3,5])
3 print(a)
4 b=np.array([[1,2,3],[4,5,6]])
5 print(b)
6 c=np.array([[1,2], [3,4],[5,6]])
7 print(c)
— 28 —
10.3 Python第三方库
2. Numpy数组的属性
10.3.1 NumPy库
【例10-19】ndarray.ndim用于返回数组的维数,等于秩。
程序代码:
1 import numpy as np
2 a = np.arange(60)
3 print(a.ndim) # a 现只有一个维度
4 b = a.reshape(20, 3) #调整后 b 现在拥有两个维度
5 print(b.ndim)
— 29 —
10.3 Python第三方库
2. Numpy数组的属性
10.3.1 NumPy库
【例10-19】ndarray.ndim用于返回数组的维数,等于秩。
程序代码:
1 import numpy as np
2 a = np.arange(60)
3 print(a.ndim) # a 现只有一个维度
4 b = a.reshape(20, 3) #调整后 b 现在拥有两个维度
5 print(b.ndim)
— 30 —
10.3 Python第三方库
3. NumPy数组操作
10.3.1 NumPy库
【例10-24】数组切片操作。
程序代码:
1 import numpy as np
2 a = np.arange(10)
3 s = slice(1, 7, 2) # 从索引 2 开始到索引 7 停止,间
隔为2
4 print(a[s])
运行结果:
[1 3 5]
— 31 —
10.3 Python第三方库
4. NumPy字符串函数
10.3.1 NumPy库
【例10-34】字符串连接。
程序代码:
1 import numpy as np
2 print('连接两个字符串:')
3 print(np.char.add(['hello'], [' world']))
4 print(np.char.multiply('hello ', 3))
5 print(np.char.center('Hi', 20, fillchar='*'))
— 32 —
10.3 Python第三方库
5. Numpy数组运算
10.3.1 NumPy库
【例10-41】数组相乘。
程序代码:
1 import numpy as np
2 a = np.array([1,2,3])
3 b = np.array([10,20,30])
4 c = a * b
5 print(a*3)
6 print (c)
运行结果:
[3 6 9]
[10 40 90]
— 33 —
10.3 Python第三方库
10.3.2 Requests库
Requests库中提供了如下常用的类:
requests.Request:表示请求对象,用于准备一个请求
发送到服务器。
requests.Response:表示响应对象,其中包含服务器
对HTTP请求的响应。
requests.Session:表示请求会话,提供Cookie持久性、
连接池和配置。
— 34 —
10.3 Python第三方库
10.3.2 Requests库
【例10-47】使用request便捷实现调用API,获取天气信息。
程序代码:
1 import requests
2 response =
requests.get('https://api.muxiaoguo.cn/api/tianqi?
city=%E9%A9%AC%E9%9E%8D%E5%B1%B1&type=1')
3 print(response.json()['data']['cityname'])
4 print(response.json()['data']['temp'])
5 print(response.json()['data']['weather'])
6 print(response.json()['data']['time'])
7 print(response.text)
— 35 —
10.3 Python第三方库
10.3.2 Requests库
运行结果
— 36 —
10.3 Python第三方库
10.3.3 Jieba库
Jieba(“结巴”)库是Python中的第三方中文分词库,能
够将一段中文文本分割成中文词语的序列。
Jieba库的分词原理:利用一个中文词库,确定汉字之间的关
联概率,汉字间概率大的组成词组,形成分词结果。除了分
词,用户还可以添加自定义的词组。
— 37 —
10.3 Python第三方库
10.3.3 Jieba库
Jieba库分词有3种模式:
(1) 精确模式:就是把一段文本精确地切分成若干个中文单词,
若干个中文单词之间经过组合,就精确地还原为之前的文本。
其中不存在冗余单词。
(2) 全模式:将一段文本中所有可能的词语都扫描出来,可能
有一段文本它可以切分成不同的模式,或者有不同的角度来
切分变成不同的词语,在全模式下,Jieba库会将各种不同的
组合都挖掘出来。分词后的信息再组合起来会有冗余,不再
是原来的文本。
— 38 —
10.3 Python第三方库
10.3.3 Jieba库
Jieba库分词有3种模式:
(3) 搜索引擎模式:在精确模式基础上,对发现的那些长的词
语会对它再次切分,进而适合搜索引擎对短词语的索引和搜
索。
— 39 —
10.3 Python第三方库
10.3.3 Jieba库
(1) jieba.cut(s)函数:精确模式,返回一个可迭代的数据类
型
(2) jieba.cut(s,cut_all=True)函数:全模式,输出文本s中
所有可能单词
(3) jieba.cut_for_search(s)函数:搜索引擎模式,适合搜
索引擎建立索引的分词结果
(4) jieba.lcut(s)函数:精确模式,返回一个列表类型,建议
使用
常用函数
— 40 —
10.3 Python第三方库
10.3.3 Jieba库
(5) jieba.lcut(s,cut_all=True)函数:全模式,返回一个列
表类型,建议使用
(6) jieba.lcut_for_search(s)函数:搜索引擎模式,返回一
个列表类型,建议使用
(7) jieba.add_word(w)函数:向分词词典中增加新词W
(8) jieba.del_word(w)函数:从分词词典中删除词汇W
常用函数
— 41 —
10.3 Python第三方库
10.3.3 Jieba库
《淮南子》,又名《淮南鸿烈》,是西汉皇族淮南王刘安及其门客收集史
料集体编写而成的一部哲学著作。原书中有内篇二十一卷,中篇八卷,外
篇三十三卷,至今存世的只有内篇,现今出版版本,大多对内篇进行删减
后再出版。胡适说:“道家集古代思想的大成,而淮南书又集道家的大
成。”《淮南子》在阐明哲理时,旁涉奇物异类、鬼神灵怪,保存了一部
分神话材料,像“女娲补天”、“后羿射日”、“共工怒触不周山”、
“嫦娥奔月”、“塞翁失马”等古代神话,主要靠本书得以流传。此书
“说林、说山、人闲诸篇多纪古事”,包括了广大而光明的通理,在我国
文学史上具有独特地位。
【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。
— 42 —
10.3 Python第三方库
10.3.3 Jieba库
【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。
1 import jieba
2 fname="淮南子全文.txt"
3 fo=open(fname,encoding="utf-8")
4 txt=fo.read()
5 lb=jieba.lcut(txt)
6 counts={}
7 for word in lb:
8 if len(word)==1:
9 continue
10 else:
11 counts[word]=counts.get(word,0)+1
— 43 —
10.3 Python第三方库
10.3.3 Jieba库
【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。
12 items=list(counts.items())
13 items.sort(key=lambda x:x[1],reverse=True)
14 for i in range(10):
15 word,count=items[i]
16 print('{:<10}{:>5}'.format(word,count))
— 44 —
10.3 Python第三方库
10.3.3 Jieba库
【例10-49】过滤连接词
1 import jieba
2 fname="淮南子全文.txt"
3 fo=open(fname,encoding="utf-8")
4 txt=fo.read()
5 lb=jieba.lcut(txt)
6 counts={}
— 45 —
10.3 Python第三方库
10.3.3 Jieba库
【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。
7 excludes = {
8 '这样', '所以', '一样', '一定', '可以', '的话', '不会', '现在', '人
9 家', '什么', '不能', '那么', '如果', '他们', '自己', '我们', '反而',
10 '没有', '于是', '就是', '所以', '这样', '知道', '这时', '不是', '这是
11 ', '一个', '有时候'
12 }
13 for word in lb:
14 if len(word) == 1:
15 continue
16 counts[word] = counts.get(word, 0) + 1
— 46 —
10.3 Python第三方库
10.3.3 Jieba库
【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。
17 for word in excludes:
18 del (counts[word])
19 items = list(counts.items())
20 items.sort(key=lambda x: x[1], reverse=True)
21 for i in range(10):
22 word, count = items[i]
23 print('{:<10}{:>5}'.format(word, count))
— 47 —
10.3 Python第三方库
10.3.4 PyInstaller库
PyInstaller库可以在多个平台操作系统下将Python源文件(.py)进行
打包,生成直接可执行的文件(.exe)。通过源文件打包后,Python程
序可以在没有安装Python的环境中运行,也可以作为一个独立文件进行
传递和管理。PyInstaller是第三方库,因此需要在命令行下使用pip工具
进行安装。
安装命令如下(不区分大小写):
pip install PyInstaller
在系统命令行中找到py程序所在目录,打包命令:
pyinstaller -F <name>.py

第10章 Python计算生态.pptx

  • 1.
  • 2.
    — 2 —— 2 — 学习要求  了解:网络爬虫、数据分析、文本处理、数据可视 化、用户图形界面、机器学习、Web开发、游戏 开发等领域的第三方库的名称。  理解:Numpy数组的概念和创建方法  掌握:基本的Python 内置函数和标准库的使用, 第三方库的获取和安装。  应用:能够创建Numpy数组并完成数组操作。
  • 3.
    — 3 —— 3 — 计算生态  计算思维是人类科学思维活动的重要组成部分。人 类在认识世界、改造世界的过程中表现为三种基本 的思维特征:  (1) 以实验和验证为特征的实证思维;(2) 以推理 和演绎为特征的逻辑思维;(3) 以设计和构造为特 征的计算思维,以计算机学科为代表。  计算思维指的是抽象实际问题的计算特性,利用计 算机求解,计算思维的本质是抽象(abstraction) 和自动化(automation)。
  • 4.
    — 4 —— 4 — 计算生态  程序设计方法论是指:自顶向下设计和自底向上执 行贯穿程序设计和执行的整个过程。  在解决一个复杂问题时,我们通常是将其拆分为几 个小问题,然后用相同的方法逐个攻破小问题,然 后把所有的碎片组合起来,就可以得到该问题的解 决方法。
  • 5.
    — 5 —— 5 — 计算生态  近20年的开源运动产生了深植于各信息技术领域 的大量可重用资源,直接有力地支撑了信息技术超 越其他技术领域的发展速度,形成了“计算生态”。  Python作为一门开源语言,其诞生之初就致力于 开源开放,而且由于Python有非常灵活的编程方 式,很多采用C、C++等语言编写的专业库经过的 接口封装亦可以供Python使用。
  • 6.
    — 6 —— 6 — 计算生态  正是因为其胶水特性,Python迅速建立了全球最 大的编程语言开放社区,建立了十几万个第三方库 的庞大规模,构建了强大的计算生态。  Python计算生态包含Python的标准库和Python 第三方库。
  • 7.
    — 7 —— 7 — 计算生态  正是因为其胶水特性,Python迅速建立了全球最 大的编程语言开放社区,建立了十几万个第三方库 的庞大规模,构建了强大的计算生态。  Python计算生态包含Python的标准库和Python 第三方库。  通常通过安装工具pip管理大部分第三方库。
  • 8.
    — 8 —— 8 — 计算生态  模块(Module):一个完整的Python文件即是一个模块, 它通常指逻辑上的组织方式。Python中常用import 模块 的方式将现成模块中的函数、类等重用到其他代码块中。  包(Package):一个有层次的文件目录结构,定义了一 个由模块和子包组成的Python应用程序执行环境。  库(Library):一组具有相同功能的模块的集合。Pyhon 之所以流行其重要原因就是具有强大的标准库、第三方库 及自定义模块。
  • 9.
    — 9 —— 9 — Contents Page 目录页 Python标准库 库的导入与使用 Python第三方库
  • 10.
    — 10 — 10.1库的导入与使用 模块导入的语法格式: (1)导入模块: import模块名 [AS 标识符] #导入模块(或同时取别名) (2)导入模块中所有项目(函数、类或变量): from 模块名 import * (3)导入模块中指定项目: from 模块名 import 项目名 [AS 标识符] (4)导入指定包模块中指定项目: from 包名.模块名 import 项目名 [AS 标识符]
  • 11.
    — 11 —— 11 — Contents Page 目录页 Python标准库 库的导入与使用使用 Python第三方库
  • 12.
  • 13.
    — 13 — 10.1库的导入与使用 10.2.1random库 函数名 说明 seed(a=None) 初始化随机数种子,默认值为当前系统时间 random() 生成一个[0.0,1.0]之间的随机小数 randint(a,b) 生成一个[a,b]之间的整 数 getrandbits(k) 生成一个k比特长度的随机整数 randrange(start,stop[,step ]) 生成一个[start,stop]之间以step为步数的随机整数 uniform(a,b) 生成[a,b]之间的随机小数 choice(seq) 从序列类型(例如列表)中随机返回一个元素 shuffle(seq) 将序列类型中元素随机排列,返回打乱后的序列 sample(pop,k) 从pop类型中随机选取k个元素,以列表类型返回
  • 14.
    — 14 — 10.1库的导入与使用 例10-1 1import random 2 print(random.randint(1,20)) # 产生 1 到 20 的一个整数型随机数 3 print(random.random()) # 产生 0 到 1 之间的随机浮点数 4 print(random.uniform(2.2,16.3)) # 产生 2.2 到 16.3 之间的随机浮点数 5 print(random.choice('sunday')) # 从序列中随机选取一个元素 6 print(random.randrange(1,100,7)) # 生成从1到100的间隔为7的随机整数 7 list1=[8,'s',5.0,24,'moon'] # 将序列list1中的元素顺序打乱 8 random.shuffle(list1) 9 print(list1)
  • 15.
  • 16.
  • 17.
  • 18.
    — 18 — 10.1库的导入与使用 例10-2 1from datetime import date #导入时间库 2 now=date.today() #取当前时间 3 print(now) 4 birthday=date(2001,4,19) 5 print(birthday) 6 age=now-birthday #假设年龄=当前日期-生日日期 7 print(age)
  • 19.
    — 19 —— 19 — Contents Page 目录页 Python绘图 库的导入与使用 Python第三方库
  • 20.
    — 20 — 10.3Python第三方库 Python第三方库广泛应用于文件读写、网络抓取和解析、数 据连接、数清洗转换、数据计算和统计分析、图像和视频处 理、音频处理、数据挖掘/机器学习/深度学习、数据可视化、 交互学习和集成开发以及其他Python协同数据工作工具。 文件的读写包括常见的txt、Excel、xml、二进制文件以及 其他格式的数据文本,主要用于本地数据的读写。Pdfminer 库可以从PDF文档中提取各类信息,Openpyxl则能够处理 Microsoft Excel文档,Python-docx用来处理Microsoft Word文档,Beautifulsoup4可以从HTML和XML文件中解 析出数据。
  • 21.
    — 21 — 10.3Python第三方库 网络抓取和解析用于从互联网中抓取信息,并对HTML对象 进行处理,Requests库可以简洁且简单的处理HTTP请求, Scrapy是快速、高层次的Web获取框架。 数据计算和统计分析主要用于数据探查、计算和初步数据分 析等工作。Numpy库提供开源数值计算扩展,Scipy库提供 一组专门解决科学和工程计算不同场景的主题工具,Pandas 库可高效地操作大型数据集,能提供类似于数据库中的切片、 切块、聚合、选择子集等精细化操作。
  • 22.
    — 22 — 10.3Python第三方库 数据挖掘、机器学习和深度学习等是Python进行数据建模 和挖掘学习的核心模块。Scikit-learn库提供了简单且高效 的数据挖掘和数据分析工具;TensorFlow是谷歌的第二代 机器学习系统,内建深度学习的扩展支持,任何能够用计算 流图形来表达的计算,都可以使用;PyTorch是FaceBook 推出的深度学习框架,它基于Python产生,它提供的动态 计算图是显著区别于Tensorflow等其他学习框架的地方; Theano库支持执行深度学习中大规模神经网络算法的运算; Keras是一个用Python编写的高级神经网络API,能够运行 在TensorFlow或者Theano之上,它的开发重点是实现快 速实验。
  • 23.
    — 23 — 10.3Python第三方库 数据可视化主要用于做数据结果展示、数据模型验证、图形 交互和探查等方面。Matplotlib是Python的2D绘图库,它 以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别 的图形,开发者可以仅需要几行代码,便可以生成多种高质 量图形;TVTK是图形应用函数库,是专业可编程的三维可视 化工具,Mayavi提供了方便实用的可视化软件。
  • 24.
    — 24 — 10.3Python第三方库 游戏开发方面,Cocos2D库提供构建2D游戏和图形界面交 互式应用的框架,基于OpenGL的游戏开发图形渲染功能; PyGame提供简单的游戏开发功能库,支持游戏对外部输入 的响应机制及角色构建和交互机制,是Python游戏入门最主 要的第三方库;Panda3D提供Python和C++两种接口,支 持很多先进特性:法线贴图、光泽贴图、卡通渲染等,是一 个开源、跨平台的3D渲染和游戏开发库。
  • 25.
    — 25 — 10.3Python第三方库 Web开发方面,Django是最流行的开源Web应用框架, Pyramid是通用、开源的Python Web应用程序开发框架, Flask则是轻量级Web应用框架。 这些第三方库都需要安装,有些还需要配置后才能使用。注 意是在Windows命令行中使用pip命令安装第三库,而不是 Python交互命令行环境中。
  • 26.
    — 26 — 10.3Python第三方库 安装 10.3.1 NumPy库 NumPy库安装命令如下(不区分大小写): pip install numpy
  • 27.
    — 27 — 10.3Python第三方库 1. 创建NumPy数组 10.3.1 NumPy库 1 import numpy as np 2 a=np.array([1,3,5]) 3 print(a) 4 b=np.array([[1,2,3],[4,5,6]]) 5 print(b) 6 c=np.array([[1,2], [3,4],[5,6]]) 7 print(c)
  • 28.
    — 28 — 10.3Python第三方库 2. Numpy数组的属性 10.3.1 NumPy库 【例10-19】ndarray.ndim用于返回数组的维数,等于秩。 程序代码: 1 import numpy as np 2 a = np.arange(60) 3 print(a.ndim) # a 现只有一个维度 4 b = a.reshape(20, 3) #调整后 b 现在拥有两个维度 5 print(b.ndim)
  • 29.
    — 29 — 10.3Python第三方库 2. Numpy数组的属性 10.3.1 NumPy库 【例10-19】ndarray.ndim用于返回数组的维数,等于秩。 程序代码: 1 import numpy as np 2 a = np.arange(60) 3 print(a.ndim) # a 现只有一个维度 4 b = a.reshape(20, 3) #调整后 b 现在拥有两个维度 5 print(b.ndim)
  • 30.
    — 30 — 10.3Python第三方库 3. NumPy数组操作 10.3.1 NumPy库 【例10-24】数组切片操作。 程序代码: 1 import numpy as np 2 a = np.arange(10) 3 s = slice(1, 7, 2) # 从索引 2 开始到索引 7 停止,间 隔为2 4 print(a[s]) 运行结果: [1 3 5]
  • 31.
    — 31 — 10.3Python第三方库 4. NumPy字符串函数 10.3.1 NumPy库 【例10-34】字符串连接。 程序代码: 1 import numpy as np 2 print('连接两个字符串:') 3 print(np.char.add(['hello'], [' world'])) 4 print(np.char.multiply('hello ', 3)) 5 print(np.char.center('Hi', 20, fillchar='*'))
  • 32.
    — 32 — 10.3Python第三方库 5. Numpy数组运算 10.3.1 NumPy库 【例10-41】数组相乘。 程序代码: 1 import numpy as np 2 a = np.array([1,2,3]) 3 b = np.array([10,20,30]) 4 c = a * b 5 print(a*3) 6 print (c) 运行结果: [3 6 9] [10 40 90]
  • 33.
    — 33 — 10.3Python第三方库 10.3.2 Requests库 Requests库中提供了如下常用的类: requests.Request:表示请求对象,用于准备一个请求 发送到服务器。 requests.Response:表示响应对象,其中包含服务器 对HTTP请求的响应。 requests.Session:表示请求会话,提供Cookie持久性、 连接池和配置。
  • 34.
    — 34 — 10.3Python第三方库 10.3.2 Requests库 【例10-47】使用request便捷实现调用API,获取天气信息。 程序代码: 1 import requests 2 response = requests.get('https://api.muxiaoguo.cn/api/tianqi? city=%E9%A9%AC%E9%9E%8D%E5%B1%B1&type=1') 3 print(response.json()['data']['cityname']) 4 print(response.json()['data']['temp']) 5 print(response.json()['data']['weather']) 6 print(response.json()['data']['time']) 7 print(response.text)
  • 35.
    — 35 — 10.3Python第三方库 10.3.2 Requests库 运行结果
  • 36.
    — 36 — 10.3Python第三方库 10.3.3 Jieba库 Jieba(“结巴”)库是Python中的第三方中文分词库,能 够将一段中文文本分割成中文词语的序列。 Jieba库的分词原理:利用一个中文词库,确定汉字之间的关 联概率,汉字间概率大的组成词组,形成分词结果。除了分 词,用户还可以添加自定义的词组。
  • 37.
    — 37 — 10.3Python第三方库 10.3.3 Jieba库 Jieba库分词有3种模式: (1) 精确模式:就是把一段文本精确地切分成若干个中文单词, 若干个中文单词之间经过组合,就精确地还原为之前的文本。 其中不存在冗余单词。 (2) 全模式:将一段文本中所有可能的词语都扫描出来,可能 有一段文本它可以切分成不同的模式,或者有不同的角度来 切分变成不同的词语,在全模式下,Jieba库会将各种不同的 组合都挖掘出来。分词后的信息再组合起来会有冗余,不再 是原来的文本。
  • 38.
    — 38 — 10.3Python第三方库 10.3.3 Jieba库 Jieba库分词有3种模式: (3) 搜索引擎模式:在精确模式基础上,对发现的那些长的词 语会对它再次切分,进而适合搜索引擎对短词语的索引和搜 索。
  • 39.
    — 39 — 10.3Python第三方库 10.3.3 Jieba库 (1) jieba.cut(s)函数:精确模式,返回一个可迭代的数据类 型 (2) jieba.cut(s,cut_all=True)函数:全模式,输出文本s中 所有可能单词 (3) jieba.cut_for_search(s)函数:搜索引擎模式,适合搜 索引擎建立索引的分词结果 (4) jieba.lcut(s)函数:精确模式,返回一个列表类型,建议 使用 常用函数
  • 40.
    — 40 — 10.3Python第三方库 10.3.3 Jieba库 (5) jieba.lcut(s,cut_all=True)函数:全模式,返回一个列 表类型,建议使用 (6) jieba.lcut_for_search(s)函数:搜索引擎模式,返回一 个列表类型,建议使用 (7) jieba.add_word(w)函数:向分词词典中增加新词W (8) jieba.del_word(w)函数:从分词词典中删除词汇W 常用函数
  • 41.
    — 41 — 10.3Python第三方库 10.3.3 Jieba库 《淮南子》,又名《淮南鸿烈》,是西汉皇族淮南王刘安及其门客收集史 料集体编写而成的一部哲学著作。原书中有内篇二十一卷,中篇八卷,外 篇三十三卷,至今存世的只有内篇,现今出版版本,大多对内篇进行删减 后再出版。胡适说:“道家集古代思想的大成,而淮南书又集道家的大 成。”《淮南子》在阐明哲理时,旁涉奇物异类、鬼神灵怪,保存了一部 分神话材料,像“女娲补天”、“后羿射日”、“共工怒触不周山”、 “嫦娥奔月”、“塞翁失马”等古代神话,主要靠本书得以流传。此书 “说林、说山、人闲诸篇多纪古事”,包括了广大而光明的通理,在我国 文学史上具有独特地位。 【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。
  • 42.
    — 42 — 10.3Python第三方库 10.3.3 Jieba库 【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。 1 import jieba 2 fname="淮南子全文.txt" 3 fo=open(fname,encoding="utf-8") 4 txt=fo.read() 5 lb=jieba.lcut(txt) 6 counts={} 7 for word in lb: 8 if len(word)==1: 9 continue 10 else: 11 counts[word]=counts.get(word,0)+1
  • 43.
    — 43 — 10.3Python第三方库 10.3.3 Jieba库 【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。 12 items=list(counts.items()) 13 items.sort(key=lambda x:x[1],reverse=True) 14 for i in range(10): 15 word,count=items[i] 16 print('{:<10}{:>5}'.format(word,count))
  • 44.
    — 44 — 10.3Python第三方库 10.3.3 Jieba库 【例10-49】过滤连接词 1 import jieba 2 fname="淮南子全文.txt" 3 fo=open(fname,encoding="utf-8") 4 txt=fo.read() 5 lb=jieba.lcut(txt) 6 counts={}
  • 45.
    — 45 — 10.3Python第三方库 10.3.3 Jieba库 【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。 7 excludes = { 8 '这样', '所以', '一样', '一定', '可以', '的话', '不会', '现在', '人 9 家', '什么', '不能', '那么', '如果', '他们', '自己', '我们', '反而', 10 '没有', '于是', '就是', '所以', '这样', '知道', '这时', '不是', '这是 11 ', '一个', '有时候' 12 } 13 for word in lb: 14 if len(word) == 1: 15 continue 16 counts[word] = counts.get(word, 0) + 1
  • 46.
    — 46 — 10.3Python第三方库 10.3.3 Jieba库 【例10-48】分析《淮南子原道训》文中出现频率最高的10个词语。 17 for word in excludes: 18 del (counts[word]) 19 items = list(counts.items()) 20 items.sort(key=lambda x: x[1], reverse=True) 21 for i in range(10): 22 word, count = items[i] 23 print('{:<10}{:>5}'.format(word, count))
  • 47.
    — 47 — 10.3Python第三方库 10.3.4 PyInstaller库 PyInstaller库可以在多个平台操作系统下将Python源文件(.py)进行 打包,生成直接可执行的文件(.exe)。通过源文件打包后,Python程 序可以在没有安装Python的环境中运行,也可以作为一个独立文件进行 传递和管理。PyInstaller是第三方库,因此需要在命令行下使用pip工具 进行安装。 安装命令如下(不区分大小写): pip install PyInstaller 在系统命令行中找到py程序所在目录,打包命令: pyinstaller -F <name>.py