基于python计算生态的第三方库总结与介绍

news2024/12/24 10:12:41

摘要:Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域。即使在每个方向,也会有大量的专业人员开发多个第三方库来给出具体设计。正是因为python有了这么多“隐形的翅膀”,所以python的功能才足够庞大。本文主要针对python的计算生态介绍常见的python研究方向和使用的第三方库,展示Python在工程实践方面强大的魅力。

目录

  1. 网络爬虫
  2. 数据分析
  3. 文本处理
  4. 数据可视化
  5. 图形用户界面
  6. 机器学习
  7. Web开发
  8. 游戏开发。
  9. 图像处理
  10. 符号计算
  11. 自然语言处理
  12. 微信公众号
  13. 二维码生成

知识导图:

 1.网络爬虫

网络爬虫是自动进行HTTP访问并捕获HTML页面的程序。Python语言提供了多个具备网络爬虫功能的第三方库。这里,仅介绍2个常用的Python网络爬虫库:requestsscrapy。 

requests:

requests库是一个简洁且简单的处理HTTP请求的第三方库,它的最大优点是程序编写过程更接近正常URL访问过程。这个库建立在Python语言的urllib3库基础上。request库支持非常丰富的链接访问功能。

scrapy:

scrapy是Python开发的一个快速的、高层次的Web获取框架。不同于简单的网络爬虫功能,scrapy框架本身包含了成熟网络爬虫系统所应该具有的部分共用功能,scrapy用途广泛,可以应用于专业爬虫系统的构建、数据挖掘、网络监控和自动化测试等领域。

  2.数据分析

数据分析是Python的一个优势方向,具有大批高质量的第三方库。这里仅介绍3个最常用的生态库:numpyscipypandas

numpy:

numpy是Python的一种开源数值计算扩展第三方库,处理数据类型相同的多维数组(ndarray),简称“数组”。这个库可用来存储和处理大型矩阵,比Python语言提供的列表结构要高效的多。numpy提供了许多高级的数值编程工具,如:矩阵运算、矢量处理、N维数据变换等。 

numpy内部是C语言编写,对外采用Python语言进行封装,因此,在进行数据运算时,基于numpy的Python程序可以达到接近C语言的处理速度。numpy也成为Python数据分析方向各其他库的基础依赖库,已经成为了科学计算事实上的“标准库”。

scipy:

scipy是一款方便、易于使用、专为科学和工程设计的Python工具包。在numpy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。它包括统计、优化、整合、线性代数、傅里叶变换、信号分析、图像处理、常微分方程求解等众多模块。

pandas:

pandas是基于numpy扩展的一个重要第三方库,它是为了解决数据分析任务而创建的。Pandas提供了一批标准的数据模型和大量快速便捷处理数据的函数和方法,提供了高效地操作大型数据集所需的工具

pandas 提 供 两 种 最 基 本 的 数 据 类 型 : Series 和DataFrame,分别代表一维数组和二维数组类型

3.文本处理

Python语言非常适合处理文本,因此,在这个方向也形成了大量有价值的第三方库。这里介绍
4个最常用的生态库:pdfminer、openpyxl、python-docx、beautifulsoup4

pdfminer:

pdfminer是一个可以从PDF文档中提取各类信息的第三方库。与其他PDF相关的工具不同,它
能够完全获取并分析PDF的文本数 据 。Pdfminer能够获取PDF中文本的准确位置、字体、行数等信息,能够将PDF文件转换为HTML及文本格式。

pdfminer包 含 两 个 重 要 的 工 具 : pdf2txt.py和dumppdf.py。pdf2txt.py能够从PDF文件中提取所有文本内容。dumppdf.py能够把PDF文件内容变成XML格式,并进一步提取其中的图片。

openpyxl: 

openpyxl是一个处理Microsoft Excel文档的Python第三方库,它支持读写Excel的xls、xlsx、xlsm、xltx、xltm等格式文件,并进一步能处理Excel文件中excel工作表、表单和数据单元。

python-docx: 

python-docx是一个处理Microsoft Word文档的Python第三方库,它支持读取、查询以及修改doc、docx等格式文件,并能够对Word常见样式进行编程设置,包括:字符样式、段落样式、表格样式等,进一步可以使用这个库实现添加和修改文本、图像、样式和文档等功能。

 beautifulsoup4: 

beautifulsoup4库,也称为Beautiful Soup库或bs4库,用于解析和处理HTML和XML。需要注
意,它不是BeautifulSoup库。它的最大优点是能根据HTML和XML语法建立解析树,进而高
效解析其中的内容。

beautifulsoup4库将数据从HTML和XML文件中解析出来,它能够提供一种符合习惯的方法去遍历搜索和修改解析树,将专业的Web页面格式解析部分封装成函数,提供了若干有用且便捷的处理函数。

4.数据可视化

数据可视化指根据数据特点将其展示为易于理解图形的过程。Python语言在数据可视化方面具
有较强的优势。这里介绍3个最常用的生态库:matplotlib、TVTK、mayavi

matplotlib:  

matplotlib是提供数据绘图功能的第三方库,主要进行二维图表数据展示,广泛用于科学计算的
数据可视化。使用这个库可以利用Python程序绘制超过100种数据可视化效果。

TVTK:   

TVTK库在标准的VTK库之上用Traits库进行封装的Python第三方库。视觉工具函数库(VTK)是一个开源、跨平台、支持平行处理的图形应用函数库,它是专业可编程的三维可视化工具。TVTK在Python生态系统中被等同于VTK。

mayavi:  

mayavi基于VTK开发,完全用Python编写,提供了一个更为方便实用的可视化软件,可以简洁地嵌入到用户编写的Python程序中,或者直接使用其面向脚本的API快速绘制三维可视化图形。值得注意的是,mayavi也被称为mayavi2。
mayavi库在Windows平台上暂时不能方便的使用pip命令安装,建议使用文件安装,请下载mayavi对应版本文件,然后在本地安装。

5.图形用户界面

Python标准库内置了一个GUI库——tkinter,这个库基于Tck/Tk开发,然而,这个库十分陈旧,
提供的开发控件也很有限,编写出来的GUI风格与现代程序GUI风格相差甚远,从用户体验角度
说,tkinter库并不成熟。这里介绍3个高质量的用户图形界面Python生态库:pyqt5、wxpython、pygtk

pyqt5:  

pyqt5是Qt5应用框架的Python第三方库,它有超过620个类和近6000个函数和方法。它是
Python中最为成熟的商业级GUI第三方库。这个库是Python语言当前最好的GUI第三方库,它
可以在Windows、Linux和Mac OS X等操作系统上跨平台使用。

pyqt5采用“信号-槽”机制将事件和对应的处理程序进行绑定。pyqt5窗体有很多内置信号,也
可以自定义信号。

wxPython:  

wxPython是Python语言的一套优秀的GUI图形库,它是跨平台GUI库wxWidgets的Python封装,可以使Python程序员能够轻松地创建健壮可靠、功能强大的图形用户界面的程序。 

pygtk:  

pygtk是基于GTK+的Python语言封装,它提供了各式的可视元素和功能,能够轻松创建具有图形用户界面的程序。pygtk具有跨平台性,利用它编写的代码能够不加修改地稳定运行在各操作系统中,如Windows、MacOS、Linux等。

6.机器学习

机器学习是人工智能领域的一个重要分支,Python语言也是机器学习和人工智能的重要基
础语言。这里介绍3个高质量的机器学习框架:Scikit-learn、TensorFlow、Theano

Scikit-learn:   

Scikit-learn是一个简单且高效的数据挖掘和数据分析工具,它基于NumPy、SciPy和matplotlib构建。Scikitlearn的基本功能主要包括6个部分:分类,回归,聚类,数据降维,模型选择和数据预处理。Scikit-learn也被称为sklearn。

Tensorflow:   

TensorFlow是谷歌公司基于DistBelief进行研发的第二代人工智能学习系统,也是用来支撑著名的AlphaGo系统的后台框架。Tensor(张量)指N维数组,Flow(流)指基于数据流图的计算,TensorFlow描述张量从流图的一端流动到另一端的计算过程。

Theano:   

Theano为执行深度学习中大规模神经网络算法的运算而设计,擅长处理多维数组。Theano开发始于2007,可以理解它是一个运算数学表达式的编译器,并可以高效运行在GPU或CPU上。Theano是一个偏向底层开发的库,更像一个研究平台而非单纯的深度学习库。

7.WEB开发

Web开发是Python语言流行的一个重要方向,主要用于服务器后端开发。根据Python Web开
发框架的复杂程度,这里依次介绍3个Python第三方生态库:Django、Pyramid、Flask

Django:    

Django是Python生态中最流行的开源Web应用框架。Django采用模型、模板和视图的编写模式,称为MTV模式。Django中提供了开发网站经常用到的模块,Django的开发理念是DRY(Don't Repeat Yourself),用于鼓励快速开发,进而减少程序员可以建立一个高性能Web应用所花费的时间和精力,形成一种一站式解决方案。

Pyramid:    

Pyramid是一个通用、开源的Python Web应用程序开发框架。它主要的目的是让Python开发者更简单的创建Web应用,相比Django,Pyramid是一个相对小巧、快速、灵活的开源Python Web框架。Pyramid仍然面向较大规模的Web应用,但它更关注灵活性,开发者可以灵活选择所使用的数据库、模板风格、URL结构等内容。

Flask:    

Flask是轻量级Web应用框架,相比Django和Pyramid,它也被称为微框架。使用Flask开发Web应用十分方便,甚至几行代码即可建立一个小型网站。Flask核心十分简单,并不直接包含诸如数据库访问等的抽象访问层,而是通过扩展模块形式来支持。

8. 游戏开发

游戏开发是一个有趣的方向,在游戏逻辑和功能实现层面,Python已经成为重要的支撑性语言。
这里介绍3个Python第三方生态库:Pygame、Panda3D、cocos2d

Pygame:    

Pygame是在SDL库基础上进行封装的、面向游戏开发入门的Python第三方库,除了制作游戏
外,还用于制作多媒体应用程序。其中,SDL(Simple DirectMedia Layer)是开源、跨平台
的多媒体开发库,通过OpenGL和Direct3D底层函数提供对音频、键盘、鼠标和图形硬件的简洁
访问。
Pygamen Pygame是一个游戏开发框架,提供了大量与游戏相关的底层逻辑和功能支持,非常适合作为入门库理解并实践游戏开发

 Panda3D:   

Panda3D是一个开源、跨平台的3D渲染和游戏开发库,简答说,它是一个3D游戏引擎,由迪士尼和卡耐基梅隆大学娱乐技术中心共同进行开发。Panda3D支持Python和C++两种语言,但对Python支持更全面。 Panda3D支持很多当代先进游戏引擎所支持的特性:法线贴图、光泽贴图、HDR、卡通渲染和线框渲染等。

cocos2d:

cocos2d是一个构建2D游戏和图形界面交互式应用的框架,它包括C++、JavaScript、Swift、Python等多个版本。cocos2d基于OpenGL进行图形渲染,能够利用GPU进行加速。cocos2d引擎采用树形结构来管理游戏对象,一个游戏划分为不同场景,一个场景又分为不同层,每个层处理并响应用户事件。

9. 图像处理

PIL库是Python语言在图像处理方面的重要第三方库,支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像
添加线条、图像和文字等操作。
PIL库主要可以完成图像归档和图像处理两方面功能需求:图像归档:对图像进行批处理、生成图像预览等;图像处理:图像基本处理、像素处理、颜色处理等。

10. 符号计算

SymPy是一个支持符号计算的Python第三方库,它是一个全功能的计算机代数系统。SymPy代码简洁、易于理解,支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等领域计算和应用。

11. 自然语言处理

NLTK是一个非常重要的自然语言处理Python第三方库,它支持多种语言,尤其对中文支持良好。NLTK可以进行语料处理、文本统计、内容理解、情感分析等多种应用,具备非常可靠的应用价值。

12.微信公众号

WeRoBot 是一个微信公众号开发框架,也称为的微信机器人框架。WeRoBot可以解析微信服务器发来的消息,并将消息转换成成Message或者Event类型。

13.二维码生成

MyQR是一个能够产生基本二维码、艺术二维码和动态效果二维码的Python第三方库。

使用MyQR生成的二维码demo实例如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/527034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浏览器指纹

目录 下载安装与运行 软件目前可以随机的指纹 指纹随机化的好处 什么时候不需要指纹随机化 如何在软件上设置指纹 进入指纹设置的两个入口 指纹设置的两个步骤 如何获取随机指纹 设置过程(动画演示) 常见问题 浏览器指纹的有效期 同一个电脑…

【网站搭建】想搭建属于自己的网站吗,教你用ECS免费搭建网站

文章目录 前言ECS尾声 前言 Hello小伙伴们好久不见啦,博主一直忙得不可开交! 久别重逢,博主最近发现了一个搭建网站的好方法,想要搭建网站的小伙伴们快来试试看吧! ECS 用ECS搭建网站,可以说真的太爽啦…

CMS搭建篇:内容模型配置-题库管理模型

微信小程序云开发实战-答题积分赛小程序 CMS搭建篇:内容模型配置-题库管理模型 内容模型 内容模型是对数据库中存储的数据结构的描述,包含了内容的属性定义。通过内容模型,内容管理可以自动生成内容管理界面。 这里,我们需要建立一个内容模型,描述题库所具有的属性,如:题…

用友BIP成功入围工信部《2022年信息技术应用创新解决方案》

近日,由工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)发布了2022年(第四届)信息技术应用创新解决方案征集工作成果,用友网络科技有限公司(以下简称“用友”)申报的“…

html实现一个一闪一闪的按钮,CSS实现一个一闪一闪的按钮,Css闪烁点标

效果 实现 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>#app {margin: auto 38%;margin-top: 10%;}/** 关键*/.lay-btn-box {position: relative;}.lay-btn {background: #59b0fb;border-r…

【C++项目设计】tcmalloc高并发内存池

&#x1f9f8;&#x1f9f8;&#x1f9f8;各位大佬大家好&#xff0c;我是猪皮兄弟&#x1f9f8;&#x1f9f8;&#x1f9f8; 文章目录 一、项目介绍二、池化技术与内存池池化技术内存池内存池需要解决的问题 三、malloc四、定长内存池&#xff08;了解内存池&&后面的…

51单片机(十一)蜂鸣器

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

使用ntpd同步服务端时间

安装ntpd 服务服务&#xff1a;yum install ntp -y ps&#xff1a;离线安装 1. 下载rpm离线包&#xff1a;autogen-libopts-5.18-5.el7.x86_64.rpm、ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm、ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm 2. 安装&#xff1a;rpm -Uvh --force…

logback按天归档日志

效果图 logback.xml文件配置 <configuration debug"false"><!--日志输出到文件--><appender name"BaseLogFile" class"ch.qos.logback.core.rolling.RollingFileAppender"><file>logs/logback.log</file><…

计算机网络 | 五种I/O模型

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

用《文心一言》1分钟写一篇博客简直yyds

文章目录 前言文心一言是什么文心一言可以做什么文心一言写博客申请体验写在最后 前言 当今社会&#xff0c;博客已成为了许多人分享观点、知识和经验的重要平台。用文心一言写博客是将自己的思考、想法和经验以文字的形式呈现出来&#xff0c;让更多人了解自己。通过写博客&a…

SpringBoot——整合Junit测试

简单介绍&#xff1a; 其实Spring Boot的测试在之前我们就已经使用过了&#xff0c;只不过当时我们只是使用&#xff0c;并不知道他具体是怎么实现的&#xff0c;我们稍微介绍一下他在做测试的时候是怎么实现的&#xff1a; SpringBoot的测试&#xff1a; 在test文件夹下面&a…

C语言CRC-16 CCITT格式校验函数

C语言CRC-16 CCITT格式校验函数 CRC-16校验产生2个字节长度的数据校验码&#xff0c;通过计算得到的校验码和获得的校验码比较&#xff0c;用于验证获得的数据的正确性。基本的CRC-16校验算法实现&#xff0c;参考&#xff1a; C语言标准CRC-16校验函数。 不同同应用规范通过…

国产数据采集虚拟仪器板卡结合labview的应用

众所周知&#xff0c;虚拟仪器技术是根据用户的需求由软件定义通用测试硬件功能的系统。 通过将可重复配置的硬件应用到一个虚拟仪器系统&#xff0c;工程师可以使用软件来开发算法并把它们应用到一个嵌入式芯片&#xff0c;从而把虚拟仪器软件的可配置能力扩展至硬件。 以前只…

MySQL 主从复制与分离

基本概念 什么是读写分离 读写分离&#xff0c;基本的原理是让主数据库处理事务性增、改、删操作&#xff08;INSERT、UPDATE、DELETE&#xff09;&#xff0c;而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 为什么要读写分…

详解线程与进程的区别

文章目录 一、进程&#xff08;Process&#xff09;二、线程&#xff08;Thread&#xff09;三、线程与进程的区别 一、进程&#xff08;Process&#xff09; 有关进程的介绍我们在前文已经详细介绍&#xff0c;有疑问的同学可以戳这里->操作系统与进程调度 我们知道&…

Guitar Pro8吉他谱编写软件下载安装及使用教程

音乐制作的许多程序都可以借助软件来完成&#xff0c;吉他谱的编写也是如此。今天要和大家分享的是吉他谱编写软件Guitar Pro&#xff0c;吉他谱怎么做电子版。 提到吉他谱的编写&#xff0c;有一款软件总是被第一时间想到&#xff0c;那就是Guitar Pro。 Guitar Pro是一款专业…

MHA高可用与故障切换

一、MHA的概述 1、 MHA的概念 MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故…

快速幂算法 Pow(x,n)函数的实现_20230515

快速幂算法 Pow(x,n)函数的实现 前言 如果要实现x的整数n次幂(xn)&#xff0c;那么可以采用不同的策略&#xff0c;最直观和简单的算法就是利用递归或迭代把n个x连续相乘起来&#xff0c;从而获得幂乘结果。显而易见&#xff0c;此算法至少需要O(n)次运算&#xff0c;n比较大…

大语言模型友好的 API:借助集体智慧构建更好的软件架构

在过去的几个月里&#xff0c;我们一直在探索&#xff1a;如何将大语言模型用于研发效能提升&#xff1f;而随着&#xff0c;我们研究的逐步推进&#xff0c;慢慢进入一些深水区&#xff0c;诸如于&#xff1a;如何将 AI 更好地用于辅助架构设计&#xff1f;基于我们多年的架构…