第 10 章 Python 第三方库使用

整理的文章内容主要来源为高教版《计算机等级考试二级 Python》教程视频讲义,并且更正了原讲义中的错误的地方。
专栏文章索引如下:
考试大纲
第 1 章 程序设计基本方法
第 2 章 Python 语言基本语法元素
第 3 章 基本数据类型
第 4 章 程序的控制结构
第 5 章 函数和代码复用
第 6 章 组合数据类型
第 7 章 文件和数据格式化
第 8 章 Python 计算生态
第 9 章 Python 标准库概览
第 10 章 Python 第三方库使用
第 11 章 Python 第三方库纵览

1. Python 第三方库的获取和安装

Python 第三方库依照安装方式灵活性和难易程度有 3 个方法,这 3 个方法是:pip 工具安装、自定义安装、文件安装。

1.1 pip 工具安装

最常用且最高效的 Python 第三方库安装方式是采用 pip 工具安装。pip 是 Python 官方提供并维护的在线第三方库安装工具。对于 Python3.x 版本环境,可以采用 pip3 命令代替 pip 命令专为 Python3.x 版本安装第三方库。
使用 pip 安装第三方库需要联网。
安装命令:

pip install 库名

在这里插入图片描述

1.2 自定义安装

自定义安装指按照第三方库提供的步骤和方式安装。第三方库都有主页用于维护库的代码和文档。科学计算用的 numpy 的官方主页是 http://numpy.org.

浏览网页找到下载链接: http://scipy.org/scipylib/download.html, 进而根据提示步骤安装。
自定义安装一般适用于在 pip 中尚无登记或安装失败的第三方库。

1.3 文件安装

由于 Python 某些第三方库仅提供源代码,通过 pip 下载文件后无法在 Windows 系统编译安装,会导致第三方库安装失败。在 Windows 平台下所遇到无法安装第三方库的问题大多属于这类。

1.4 pip 工具使用

除了进行第三方库安装之外,pip 工具能对第三方库进行基本的维护。执行 pip –h 将列出 pip 常用的命令。
在这里插入图片描述
pip支持安装 (install)、下载 (download)、卸载 (uninstall)、列表 (list)、查看(show)、查找(search) 等一系列安装和维护子命令。
pip 的 uninstall 子命令可以下载一个已经安装的第三方库。
语法格式:

pip uninstall 模块名称

在这里插入图片描述
pip 的 list 子命令可以列出当前系统中已经安装的第三方库。
语法格式:

pip list 

2. pyinstaller 库概述

使用 pyinstaller 是一个十分有用的 Python 第三方库,它能够在 Windows、Linux、MacOS 等操作系统下将 Python 源文件打包、变成直接可运行的可执行文件。

通过对源文件打包,Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。Pyinstaller 需要在命令行下用 pip 工具安装。

pip install pyinstaller

pip 指令可以将 pyinstaller 库自动安装到 python 解释器目录,与 pip 或 pip3 命令路径相同,可以直接在命令行调用。
pyinstaller 针对不同操作系统打包生成的可执行文件都不同。

3. pyinstaller 库与程序打包

使用 pyinstaller 库对 python 源文件打包十分简单。
语法结构:

pyinstaller 源文件名

执行完毕后,源文件所在目录将生成 dist 和 build 两个文件夹。其中, build 目录是 pyinstaller 存储临时文件的目录,可以安全删除。最终的打包程序在 dist 内部与源文件同种目录中,目录中其他文件是可执行文件的动态链接库。
可以通过 -F 参数对 Python 源文件生成一个独立的可执行文件。

pyinstaller –F a.py

执行后在 dist 目录中出现了 a.exe 文件,没有任何依赖库,执行它即可运行程序。
使用 pyinstaller 库需要注意以下问题:
文件路径不能出现空格和英文句号(.). 源文件必须是UTF-8编码,暂时不支持其他编码类型。
pyinstaller 命令的常用参数及功能如下所示:

序号参数功能
1-h, --help查看帮助
2–clean清理打包过程中的临时文件
3-D,–onedir默认值,生成dist目录
4-F,–onefile在dist文件夹中只能生成独立的打包文件
5-i<图标文件名>指定打包程序使用的图标icon文件
pyinstaller 命令不需要在 Python 源文件中增加代码,只需要通过命令进行打包即可。

4. jieba 库概述

由于中文文本的单词不是通过空格或者标点符号分割,中文及类似语言存在一个重要的“分词”问题。
jieba 是 Python 中一个重要的第三方中文分词函数库,能够将一段中文文本分割成中文词语的序列,jieba 可以通过 pip 指令安装。

pip install jieba -i https://mirrors.aliyun.com/pypi/simple

jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组,除了分词,jieba 还提供增加自定义中文单词的功能。

jieba 库支持三种分词模式:精确模式,将句子最精确地切分,适合文本分析;全模式,把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
对中文分词来说,jieba只需要一行代码。(英文文本不存在分词问题)
在这里插入图片描述

5. jieba 库与中文分词

jieba 库主要提供中文分词功能,可以辅助自定义分词词典。
jieba 库常用的分词函数及描述:

序号函数描述
1jieba.lcut(s)精确模式,返回一个列表类型
2jieba.lcut(s, cut_all=True)全模式,返回一个列表类型
3jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型
4jieba.add_word(w)向分词字典中增加新词 w

jieba.lcut(s) 是最常用的中文分词函数,用于精确模式,即将字符串分割成等量的中文词组,返回结果是列表类型。
在这里插入图片描述
jieba.lcut(s,cut_all=True) 用于全模式,即将字符串的所有分词可能均列出来,返回结果是列表类型,冗余性最大。
在这里插入图片描述
相比于精确模式,全模式会找到所有分词可能,比如“计算机”被分词为 3 个可能词语“计算”、“计算机”、“算机”。
jieba.lcut_for_search(s) 返回搜索引擎模式,该模式首先执行精确模式,然后再对其中长词进一步切分获得最终结果。
在这里插入图片描述
相比精确模式,其中长词 “计算机”被再次分词成“计算”、“算机”、“计算机”三个词语,存在一定冗余。
提示:精确模式因为不产生冗余,最为常用。

搜索引擎模式更倾向于寻找短词语,这种方式具有一定冗余度,但冗余度相比全模式较少。实例中,搜索引擎模式没有产生“国计”的分词结果,因为精确模式并未产生这个词语。

3 种分词模式如何选择?看需求。
如果希望对文本精确分词,不产生冗余,只能选择 jieba.lcut(s) 函数,即精确模式。如果希望对文本分词更准确,不漏掉任何可能的分词结果,请选用全模式。如果没想好怎么用,可以使用搜索引擎模式。

jieba.add_word() 函数,用来向 jieba 词库增加新的单词。
在这里插入图片描述

6. wordcloud 库概述

数据展示的方式多种多样,传统的统计图尽管很”科学“,但略显古板,尤其对于文本来说,更加直观,带有一定的艺术感的展示效果需要很大。对于这类需求,词云特有的展示方式深得人心。

词云以词语为基本单元,根据其在文本中出现的频率设计不同大小以形成视觉上的不同效果:形成”关键云层“或”关键词渲染“,从而使得读者只要”一瞥“即可领略文本的主旨,这种展示方式已经成为文本展示的样板。

wordcloud 库是专门用于根据文本生成词云的 Python 第三方库,十分常用且有趣。
能够将文本转变成词云,也是一种必备能力。

pip install wordcloud -i https://mirrors.aliyun.com/pypi/simple

在生成词云时,wordcloud 默认会以空格或标点分隔符对目标文本进行分词处理,对于中文文本,分词处理需要由用户来完成,一般步骤是先将文本分词处理,然后以空格拼接,再调用 wordcloud 库函数,处理中文时还需要指定中文字体。
在这里插入图片描述
在这里插入图片描述

7. wordcloud 库与可视化词云

在生成词云时,wordcloud 默认会以空格或标点分隔符对目标文本进行分词处理。对于中文文本,分词处理需要由用户来完成。一般步骤是先将文本分词处理,然后以空格拼接,再用调用 wordcloud 库函数,处理中文时还需要指定中文字体。例如,选择了微软雅黑 (msyh.ttc, 该文件在 C:\Windows\Fonts 文件夹下) 作为显示效果,需要将该字体文件与代码存放在同一目录下或在字体文件名前加上完整路径。

import jieba
from wordcloud import WordCloud
txt = '程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行处理各种运算异常'
words = jieba.lcut(txt)
newtxt = ''.join(words)
wordcloud = WordCloud(font_path='msyh.ttc').generate(newtxt)
wordcloud.to_file('词云中文案例.png')

wordcloud 库的核心是 WordCloud 类,所有的功能都封装在 WordCloud 类中,使用时需要实例化一个 WordCloud 类的对象,并调用其generate(text) 方法将 text 文本转化为词云。WordCloud 在创建时有一系列可选参数,用于配置词云图片。

WordCloud 对象创建的常用参数及功能介绍如下:

序号参数功能
1font_path指定字体文件的完整路径,默认 None
2width生成图片宽度,默认为 400 像素
3height生成图片高度,默认为 200 像素
4mask词云形状,默认为 None, 即方形图
5min_font_size词云中最小的字体号,默认为 4 号
6font_step字号步进间隔,默认为 1
7max_font_size词云中最大的字体字号,默认 None, 根据高度自动调节
8max_words词云图中最大词数,默认为 200
9stopwords被排除词列表,排除词不在词云中显示
10backgroup_color图片背景色,默认黑色

WordCloud 类的常用方法及功能介绍如下表所示:

序号方法功能
1generate(text)由 text 文本生成词云
2to_file(filename)将词云图保存为名为 filename 的文件
wordcloud 可以生成任何形状的词云,为了获取形状,需要提供一张形状的图像,类似于下面这张纯背景的中国地图的图片。
在这里插入图片描述
可以利用这张背景图,生成一个词云图。
from wordcloud import WordCloud
import numpy as np
from PIL import Image
import jieba
mask = np.array(Image.open("ChinaMap.png"))
wcd = WordCloud(background_color="white",max_words=500,height=480,width=854,
             max_font_size=100,font_path="msyh.ttc",mask=mask,
                repeat=True,colormap="Reds")
# 读入文本内容
text = open("词云文本素材.txt", 'r').read()
ss = " ".join(jieba.lcut(text))
wcd.generate(ss)
wcd.to_file("词云图片.png")

在这里插入图片描述

8. 选择题

(1)下面关于 pip 安装方式的说法中错误的是(B)

  • A. pip 工具几乎可以安装任何 Python 第三方库
  • B. pip 的 download 子命令可以下载第三方库的安装包并安装
  • C. pip 可以安装已经下载的 .whl 安装文件
  • D. Python 第三方库有三种安装方式,其中 pip 是最常用的方式

(2)下面关于 jieba 库的描述错误的是(D)

  • A. jieba 库是一个中文分词工具
  • B. jieba 库利用基于概率的分词方法
  • C. jieba 库提供增加自定义分词的功能
  • D. jieba 库的分词模式分为模糊模式、精确模式、全模式和搜索引擎模式

(3)jieba 库中搜索引擎分词模式的作用是(C)

  • A. 精确地切开句子,适合文本分析
  • B. 将句子中所有成词的语句都扫描出来
  • C. 对长词再次切分,提高召回率
  • D. 速度快,消除歧义

(4)下面关于 wordcloud 库的描述中错误的是(C)

  • A. wordcloud 库是一个用于生成词云的库
  • B. wordcloud 库生成中文词是根据空间分词
  • C. wordcloud 库生成中文词云时输出乱码,故无法用于制作中文词云
  • D. wordcloud 库的大多数方法都封装在 WordCloud 类里面

(5)使用 pyinstaller 打包程序时,想要在 dist 文件夹中只生成一个单独的 exe 文件,所需参数是(D)

  • A. –version
  • B. –clean
  • C. –onedir
  • D. -F

(6)使用pyinstaller打包程序时,–path命令的作用是(C)

  • A. 指定代码文件所在目录
  • B. 指定pyinstaller所在目录
  • C. 指定代码所依赖非标准库的路径
  • D. 指定生成exe文件的目录

(7)关于 pyinstaller, 下列说法中错误的是(B)

  • A. pyinstaller 是用于将 Python 脚本打包成可执行文件的工具
  • B. pyinstaller 使用起来非常方便,在 IDLE 交互式环境下输入相应命令即可
  • C. 使用 -p 添加多个非标准库的路径信息时,既可以多次使用 -p, 也可以使用分号分割路径
  • D. --clean 参数用于清理打包过程中的临时文件

(8)jieba 库函数 jieba.lcut() 返回值的类型是(A)

  • A. 列表
  • B. 迭代器
  • C. 字符串
  • D. 元组

(9)以下不是 pip 合法命令的是(D)

  • A. install
  • B. hash
  • C. help
  • D. update

(10)使用 pyinstaller 打包含有中文字符的代码文件时,关于代码文件编码方式的说法中正确的是(A)

  • A. 必须是 UTF-8, 无 BOM 编码格式
  • B. 必须是 UTF-8, 无 BOM 编码格式或者 ANSI 编码格式
  • C. 可以是任何合法编码格式
  • D. 必须是 GBK 编码格式

PDF 讲义下载链接如下:
链接:https://pan.baidu.com/s/1rc8d2_mmtci0o5vtCSl6rg

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReadThroughLife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值