Python 计算生态及各种库的应用

目录

 

一、计算生态

二、Python 的内置函数

三、Python 标准库

3.1 turtle 库函数

3.2 random 库函数  

3.3 time 库函数 

四、Python 第三方库

4.1 第三方库的安装方式

4.2 PyInstaller 库

4.3 jieba 库

4.4 wordcloud 库与可视化词云

五. 第三方库总览

5.1 数据分析方向

5.2 文本处理方向

5.3 数据可视化方向

5.4 用户图形界面方向

5.5 机器学习方向

5.6 Web 开发方向

5.7 游戏开发方向

5.8 网络爬虫方向

5.9 更多第三方库

总结


一、计算生态

Python 计算生态及各种库的应用_第1张图片

  •  标准库:有一部分 Python 计算生态随 Python 安装包一起发布,用户可以随时使用。
  • .第三方库:更广泛的 Python 计算生态采用额外安装方式服务用户。

二、Python 的内置函数

Python 解释器提供了 68 个内置函数,可以 直接使用不需要引入库

Python 计算生态及各种库的应用_第2张图片

 Win+R→输入 pip list,可以查看安装了哪些库。

Python 计算生态及各种库的应用_第3张图片


三、Python 标准库

3.1 turtle 库函数

  • turtle(海龟)库是 Python 重要的标准库之一,它能够进行基本的图形绘制。
  • turtle 库图形绘制概念诞生于 1969 年,成功应用于 LOGO 编程语言。

Python 计算生态及各种库的应用_第4张图片

 1)体函数:

import turtle #导入库
turtle.setup(width,height,startx,starty)
width :窗口宽度
height :窗口高度
startx :窗口左侧与屏幕左侧的距离
starty :窗口顶部与屏幕顶部的距离

2)画笔状态函数 :

pendown() 放下画笔
penup() 拿起画笔
pensize() 设置画笔线条的粗细
pencolor() 设置画笔颜色
color() 设置画笔和填充颜色,颜色部分遵循顺序原则
begin_fill() 填充图形前,调用该方法
end_fill() 填充图形结束
filling() 返回填充状态, True 为填充 ,False 为未填充
clear() 清空当前窗口,但不改变当前画笔的位置
reset() 清空当前窗口,并重置位置等状态为默认值
write(str,font=None) 输出 font 字体的字符串
screensize() 设置画布的长和宽
hideturtle() 隐藏画笔的 turtle 形状
showturtle() 显示画笔的 turtle 形状
isvisible() 如果 turtle 可见,则返回 True ,否则返回 False

3)笔运动函数:

speed() 设置画笔的绘制速度,参数为 0~10(10最快,0-10之间数越大越快)
forward() 沿着当前指定方向前进的距离(fd)
backward() 沿着当前相反方向后退指定距离(bk)
right(angle) 向右旋转 angle 角度
left(angle) 向左旋转 angle 角度
goto(x,y) 移动到绝对坐标 (x,y)
setheading(angle) 设置当前朝向为 angle 角度
setx(x) 修改画笔的横坐标到 x ,纵坐标不变
sety(y) 修改画笔的纵坐标到 y ,横坐标不变
circle(r,e) 绘制一个指定半径 r 和角度 e 的圆或弧形
dot(r,color) 绘制一个指定直 径 r 和颜色 color 的圆点
undo() 撤销画笔最后一步动作
home() 返回 原点,朝向东

3.2 random 库函数  

        随机数在计算机应用中十分常见,Python 语言提供了 random 库用于生产各种分布的伪随机数序列。
        random 库的主要目的是 生成随机数 。这个库提供了不同的随机数函数,因此,使用时只需要查阅该库的随机数生成函数,然后放到符合使用场景的函数使用即可。
        random 库采用梅森旋转算法生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用
  • random.seed(s):为随机数序列确定种子,其中参数为种子:
s :随机数种子,一个整数或浮点数;
设置随机数种子的好处是可以准确复现随机数序列,用于重复程序的运行轨迹;
  • random.random():生成[0.0,1.0)之间的随机小数,左闭右开;
  • random.randint(a,b):生成[a,b]之间的随机整数,随机数可能等于 b;
a b :一个整数
  • random.getrandbits(k):生成 k 比特长度的随机整数,其中 k 是二进制位数的长度:
k :一个整数,函数的输出范围是0~2^k-1;
  • random.randrange(start,stop,step):生成一个[a,b)之间以 step 为步数的随机整数:
start :一个整数,表示开始整数
stop :一个整数,表示结束整数
step :一个在整数,表示步数
  • random.uniform(a,b):生成[a,b]之间的随机小数,随机数可能等于 b:
a b :一个整数或浮点数
  • random.choice(seq):从序列类型中随机返回一个元素,序列类型有列表、元组和字符串:
seq :一个列表变量
  • random.shuffle(seq):将序列类型中元素随机排列,返回打乱后的序列:
seq :一个列表变量
  • random.sample(pop,k):从 pop 表示的组合数据类型中选取 k 个元素,以列表返回
pop :一个组合数据类型,如集合、列表、元组、字符串等
k :一个整数

3.3 time 库函数 

time 库是 Python 提供的处理时间标准库。 time 库的功能主要分为 3 个方面: 时间处理、时 间格式化和计时;

 1)时间处理函数:

  • time.time():获取当前时间戳,自1970年1月1日 8:00 过去了几秒
import time
print(time.time())

1650813922.6931734

  • time.gmtime():获取当前时间戳对应的 struct_time 对象
import time
print(time.gmtime())
time.struct_time(tm_year=2022, tm_mon=4, tm_mday=24, tm_hour=15, tm_min=26, tm_sec=5, tm_wday=6, tm_yday=114, tm_isdst=0)
  • time.localtime():获取当前时间戳对应的本地时间的 struct_time 对象
import time
print(time.localtime())
time.struct_time(tm_year=2022, tm_mon=4, tm_mday=24, tm_hour=23, tm_min=26, tm_sec=43, tm_wday=6, tm_yday=114, tm_isdst=0)
  • time.ctime():获取当前时间戳对应的字符串表示,内部会调用 localtime()函数以输出当地时间
import time
print(time.ctime())
Sun Apr 24 23:27:35 2022
2) 时间格式化函数:
  • time.mktime(t):struct_time 对象 t 转换为时间戳,t 代表当地时间
import time
t = time.localtime()
print(time.mktime(t))

1650814125.0 

  • time.strftime():是时间格式化最有效的方法,几乎可以以任何通用格式输出时间
import time
t = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",t))

2022-04-24 23:29:37

strftime()方法的格式化控制符:

Python 计算生态及各种库的应用_第5张图片

  •  time.strptime():该 方 法 与 strftime 方 法 相 反 , 用 于 提 取 字 符 串 中 的 时 间 来 生成struct_time 对象,可以灵活地作为 time 模块的输入接口。

3)计时函数:

  • time.sleep(s) 推迟调用线程的运行,s 的单位是秒
import time
start_time = time.time()
time.sleep(5)
end_time = time.time()
print(start_time-end_time)

-5.000593423843384 

  • time.monotonic():开机后单调递增;
  • time.perf_counter():返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间
  • time.process_time()

四、Python 第三方库

4.1 第三方库的安装方式

1)pip 工具安装

pip install < 安装库名 >
更新: python.exe -m pip install --upgrade pip

Python 计算生态及各种库的应用_第6张图片

 2)自定义安装

按照第三方库提供的步骤和方式安装。第三方库都有主页用于维护库的代码和文档。
以科学计算用的 nummpy 为例。
登录官网: http://www.numpy.org/
浏览该网页找到下载链接 ,进而根据指示步骤安装。自定义安装一般适用于在 pip 中尚无登记或安装失败的第三方库。
pip install -i https://pypi.douban.com/simple/ 模块名

3)文件安装 

        由于 Python 某些第三方库只提供源代码,通过 pip 下载文件后无法在 Windows 系统变异 安装,会导致第三方库安装失败。因此,有专门的页面用来存放这些库的链接,地址如下: http://www.lfd.uci.edu/~gohlke/pythonlibs/

Python 计算生态及各种库的应用_第7张图片

4.2 PyInstaller

         PyInstaller 库可以在 WindowsLinuxMacOS X 等操作系统下将 Python 源文件打包,变成可执行文件。通过对源文件打包,Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。(http://www.pyinstaller.org

        可以使用 pip 工具安装 PyInstaller 库。 PyInstaller 针对不同操作系统打包生成的可执行文件不同。

        PyInstaller 库的使用方法:

Python 计算生态及各种库的应用_第8张图片

4.3 jieba

  • jieba 库是 Python 中一个重要的第三方中文分词函数库,可以将一段中文文本分割成中文词语的序列。jieba 库需要通过 pip 指令安装,安装命令如下:pip install jieba
  • jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。除了分词,jieba 库还提供增加自定义中文单词的功能。
  • jieba 库支持三种分词模式:精确模式,将句子最精确地切开,适合文本分析;全模式,把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
jieba.lcut(s) 精确模式
jiaba.lcut(s,cut_all=True) 全模式
jieba.lcut_for_search(s) 搜索引擎模式
jieba.add_word(w) jieba 词库增加新的单词,当再遇到该词语时将不再被分词。
jieba.setLogLevel(jieba.logging.INFO)

4.4 wordcloud 库与可视化词云

  • 在生成词云时,wordcloud 默认会以空格或标点为分隔符对目标文本进行分词处理。对于 中文文本,分词处理需要由用户来完成。一般步骤是先将文本分词处理,然后以空格拼接, 再调用 wordcloud 库函数。处理中文时还需要指定中文字体。
  • wordcloud 库的核心类是 Wordcloud ,所有的功能都封装在 Wordcloud 类中。使用时需要实例化一个 Wordcloud 类的对象,并调用其 generate(text)方法将 text 文本转化为词云。
  • Wordcloud 可以生成任何形状的词云,为了获取形状,需要提供一张形状的图像。
  • “wordcloud默认是不支持显示中文的,中文会被显示成方框。”

         WordCloud 对象创建的常用参数:

Python 计算生态及各种库的应用_第9张图片

        WordCloud 类的常用方法: 

Python 计算生态及各种库的应用_第10张图片

from wordcloud import WordCloud 
from imageio import imread 
mask = imread("佩奇.jpg") 
fi = open("page.txt","r") 
txt = fi.read() 
wordcloud = WordCloud(background_color = "white",
                    width=800,
                    height=600, 
                    max_words=200,
                    max_font_size=80,
                    mask = mask,).generate(txt) 
wordcloud.to_file("page.png")

五. 第三方库总览

Python 计算生态及各种库的应用_第11张图片

5.1 数据分析方向

1numpy:
  • numpy 是 Python 的一种开源数值计算扩展第三方库,用于处理数据类型相同的多维数组(ndarray),简称“数组”。这个库可用来存储和处理大型矩阵,比 Python 语言提供的列表结构要高效的多;
  • numpy 内部是 C 语言编写,对外采用 Python 语言封装。因此,在进行数据运算时,基于numpy Python 程序可以达到接近 C 语言的处理速度;
2scipy:
  • scipy 是一款方便、易用、转为科学和工程设计的 Python 工具包,是在 numpy 库的基础上增加了众多的数学、科学以及工程计算中常用的库函数;
3pandas:
  • pandas 是基于 numpy 扩展的第一个重要的第三方库,它是为解决数据分析任务创建的;
  • pandas 提供了一批标准的数据模型和大量快速便捷处理数据的函数和方法,提供了高效地操作大型数据集所需的工具;

5.2 文本处理方向

1pdfminer:
  • pdfminer 是一个可以从 PDF 文档中提取各类信息的第三方库,它能够完全获取并分析 PDF的文本数据。pdfminer 能够获取 PDF 中文本的准确位置、字体、行数等信息,能够将 PDF文件转换为 HTML 及文本格式。
  • 包含两个重要的工具:pdf2txt.py dumppdf.py;
2openpyxl:
  • openpyxl 是一个处理 Microsoft Excel 文档的 Python 第三方库,它支持读写的 Excel xls、xlsx、xlsmxltxxltm 等格式文件,并进一步处理 Excel 文件中的工作表、表单和数据单元。
3python-docx:
  • python-docx 是一个处理 Microsoft Word 文档的第三方库,它支持读取、查询以及修改 doc、docx 等格式文件,并能够对 Word 常见样式进行编程设置、包括字符样式、段落样式、表格样式、页面样式等,进一步可以使用这个库实现添加和修改文本、图像、样式和文档等功能。
4beautifulsoup4:
  • beautifulsoup4 又称 Beautiful Soup 库或 bs4 库,用于解析和处理 XML HTML。最大的优点就是能根据 HTML XML 语法建立解析树,进而高效解析其中的内容。

5.3 数据可视化方向

1matplotlib:
  • Matplotlib 是提供数据绘图功能的第三方库,主要进行二维图表数据展示,广泛用于科学计算的数据可视化。该库可以绘制超过 100 种数据可视化效果。
2TVTK:
  • TVTK 库是在标准的 VTK 库之上用 Traits 库进行封装的 Python 第三方库。视觉工具函数库是一个开源、跨平台、支持平行处理的图形应用函数库,是专业可编程的三维可视化工具。
3mayavi:
  • mayavi 基于 VTK 开发,完全用 Python 编写,提供了一个更为方便实用的可视化软件,可以简洁的嵌入到用户编写的 Python 程序中,或者直接使用其面向脚本的 API 快速绘制三维可视化图形。
  • mayavi 库在 Windows 平台上暂时不能方便地使用 pip 命令安装,建议使用文件安装。

5.4 用户图形界面方向

1)pyQt5:
  • pyQt5 是 Qt5 应用框架的 Python 第三方库,它超过 620 个类和近似 6000 个函数和方法。是 Python 语言中当下最好的、最为成熟的 GUI 第三方库。
2wxPython:
  • wxPython 是 Python 语言的一套优秀的 GUI 图形库,它是跨平台 GUI wxWidgets Python 封装,可以使 Python 程序员能够轻松地创建健壮可靠、功能强大的图形用户界面的程序。
3pyGTK:
  • pyGTK 是基于 GTK+Python 语言封装,它提供了各式的可视元素和功能,能够轻松创建具有图形用户界面的程序。

5.5 机器学习方向

1scikit-learn:
  • scikit-learn 是一个简单且高效的数据挖掘和数据分析工具,它基于 NumPySciP matplotlib 构建。其主要功能包括:分类、回归、聚类、数据降维、模型选择和数据预处理。
  • scikit-learn 也被称为 sklearn
2TensorFlow:
  • TensorFlow 是谷歌公司研发的第二代人工智能学习系统,也是用来支撑 AlphaGo 系统的后台框架。它的应用十分广泛,从语音识别或图像识别到机器翻译或自主跟踪等,既可以运行在数万台的数据中心,也可以运行在智能手机或嵌入式设备中。
3Theano:
  • Theano 是一个偏向底层开发的库,更像一个研究平台而非单纯的深度学习库, Theano 为执行深度学习中大规模神经网络算法的运算而设计,擅长处理多维数组。 

5.6 Web 开发方向

1Django:
  • Django 是 Python 生态中最流行的开源 Web 应用框架,它采用模型、模板和视图的编写模式,称为 MTV 模式。Django 中提供了开发网站经常用到的模块。
2Pyramid:
  • Pyramid 是一个通用、开源的 Python Web 应用程序开发框架,其主要目的是让 Python 开发者更简单地创建 Web 应用。
3Flask:
  • Flask 是轻量级 Web 应用框架,甚至几行代码就可以建立一个小型网站。Flask 核心十分简单,并不直接包含诸如数据库访问的抽象访问层,而是通过扩展模块形式来支持。

5.7 游戏开发方向

1Pygame:
  • Pygame 是在 SDL 库基础上进行封装的、面向游戏开发入门的 Python 第三方库,不仅可以制作游戏,还可以制作多媒体应用程序。
  • Pygame 是一个游戏开发框架,提供了大量与游戏相关的底层逻辑和功能支持,非常适合作为初学者实践游戏开发。
2Panda3D:
  •  Panda3D 是一个开源、跨平台的 3D 渲染和游戏开发库,简单说,就是一个游戏引擎,支持很多当代先进游戏引擎所支持的特性,如法线贴图、光泽贴图、HDR、卡通渲染和线框渲染等。
3cocos2d:
  • cocos2d 是一个构建 2D 游戏和图形界面交互式应用的框架,包含 C++JavaScriptSwift、Python 等多个版本。Cocos2d 引擎采用树形结构来管理游戏对象,一个游戏划分为不同场景,一个场景又分为步同层,每个层处理并响应用户事件。

5.8 网络爬虫方向

1requests:
  • requests 库是一个简洁且简单的处理 HTTP 请求的第三方库,最大的优点就是程序编写过程更加接近正常 URL 访问过程。
  • resquests 库支持丰富的链接访问功能,包括:国际域名和 URL 获取、HTTP 长连接和连接缓存、HTTP 会话和 cookie 保持、浏览器使用风格的 SSL 验证、基本的摘要认证、有效的键值对 cookie 记录、自动解压缩、自动内容解码、文件分块上传、HTTP(S)代理功能、连接超时处理、流数据下载等
2 scrapy
  • scrapy Python 开发的一个快速的、高层次的 Web 获取框架,scrapy 框架本身包含了成熟网络爬虫系统所应该具有的部分共用功能,它是一个半成品,任何人都可以根据需求方便的利用框架已有功能经过简单扩展实现专业的网络爬虫系统。
  • scrapy 用途广泛,可以应用于专业爬虫系统的构建、数据挖掘、网络监控和自动化测试等领域。

5.9 更多第三方库

  • PIL Python 语言在图像处理方面的重要第三方库,支持图像存储、处理和显示,它能够处理几乎所有的图片格式,可以完成图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作。
  • symPy 是一个支持符号计算机Python 第三方库,它是一个全功能的计算机代数系统。
  • SymPy 代码简洁、易于理解,支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等领域的计算和应用。
  • NLTK 是一个非常重要的自然语言处理 Python 第三方库,它支持多种语言,尤其对中文支持良好。
  • WeRoBot 是一个微信公众号开发框架,也称为微信机器人框架。WeRoBot 可以解析微信服务器发来的消息,并将消息转换成 Message 或者 Event 类型。
  • MyQR 是一个能够产生基本二维码、艺术二维码和动态效果二维码的 Python 第三方库。

总结

        程序员写代码并不是从0开始的,我们也是需要借助多个模板拼接,使得代码能够实现我们的想法,而且也并非默写出来,毕竟学习编程是开卷学习,开卷使用,加油,希望你我一同走进python的世界~~

        欢迎大家留言一起讨论问题~~~

你可能感兴趣的:(python技巧,python,学习,经验分享)