Python常见的第三方库

Python是通过模块来体现库,常见的有标准库和第三方库。标准库是Python自带的库,在官方文档中可以查看,第三方库是其他大佬做出来的。
库它的优点有:1.降低程序员的学习成本 2.提高程序的开发效率 。
第1个常见的库为datetime,我们放在日期管理器中为例:
1.根据日期构造出datetime类型变量
2.把两个变量进行相减,得到的结果即为所求
datetime.datetime(年,月,日)
第1个datetime是模块,第2个是具体类型
但这样容易引起误会,可以直接导入模块中的类型吗?是可以的,只要在开头声明
from 模块 import 类型. 又或者直接将模块名改一下: import datetime as 改的变量名.
第2个常见的库,我们以字符串的转置字符为例,具体体现:1.字符串split的方法可以指定分隔符,把字符串分为多个部分放到一个list里 2.针对钢材逆序可以用reverse方法 3.再把逆序的列表用join方法组合起来 例:" “(” "里面填入字符) 这个是字符串表示每次拼接后以什么结束.join(变量)
加大难度:查找是否前缀相同的字符串
1.遍历整个列表,取列表中每个字符串
2.判断当前字符串是否是target的前缀就行了.
这里要用到startswitch方法,可以判断是不是相同开头的,endswitch方法可以判断是不是相同结尾,而in则可以查看这些这个target是不是在里面的.
加大难度:很多目录很多文件,请实现一个文件管理器
这里要用到Os.walk()Os是模块,操作系统的模块. walk()表示是循环路径. Os walk 每次调用都能自动的去针对子目录进行递归操作,只需要使用上述循环就可,已把所有路径找出来.
这里上述例子用到的都是标准库,然后第三方库备pypl官方网站集合了起来,相当于Python世界中的应用商店,而pip工具是 pypl的一个句柄,在Python安装的过程中就已经下载好了,成为了命令行程序.
点击控制台下方的terminal,使用命令pip install[库名] 安装后记得导入模块名哦
这里说着很空洞,直接举个例子生成二维码(本质就是字符串,而生活中的二维码更多的是一个URL网址):

import qrcode
strings = qrcode.make("你好呀!祝你好好学习,天天向上")
strings.save("test.png")

当你运行的时候发现它没有消息的时候,往往no news is good news,没有消息就是最好的消息.
对了,其实可以把博客的链接弄成二维码放在简历上,这样面试官可以拿手机扫一下.

对了,提个题外话,网址上的一些代码在自己的程序中不一定运行起来,可能是它代码本身就是错误的,因为没人验证,第2个可能是它的运行软件版本不同,也可能造成运行不成功.
第2个操作Excel的模块,主要是xlrd 读 xlwt写 这里的读写都是指文档地址。 注意安装的时候尽量这样安装 pip install xlrd == 1.2.0 这个数字是版本号这里要指定版本号,否则自动默认最新版,而最新版不支持xlsx格式文件,也就是Excel的格式.我这里主要是极差标准化,主要是为了演示:

import xlrd
# 先打开xlsx文件
reads = xlrd.open_workbook("C:/Users/Documents/Python/Excel.xlsx")
# 确定标签页
loated = reads.sheet_by_index(0)
# 确定行数
rows = loated.nrows
print(f'行数为:{rows}')
# 遍历每行 寻找每列mix and max
mix1 = 100000; max1 = 0; mix2 = 100000; max2 = 0; mix3 = 100000; max3 = 0
for i in range(1, rows):
    rowsj1 = loated.cell_value(i, 1)
    mix1 = min(mix1, rowsj1)
    max1 = max(max1, rowsj1)
    rowsj2 = loated.cell_value(i, 2)
    mix2 = min(mix2, rowsj2)
    max2 = max(max2, rowsj2)
    rowsj3 = loated.cell_value(i, 3)
    mix3 = min(mix3, rowsj3)
    max3 = max(max3, rowsj3)
denominator1 = max1 - mix1;denominator2 = max2 - mix2; denominator3 = max3 - mix3;
# 计算每行极差标准化
for i in range(1, rows):
    rowsj1 = loated.cell_value(i, 1)
    real1 = (rowsj1 - mix1)/denominator1
    rowsj2 = loated.cell_value(i, 2)
    real2 = (rowsj2 - mix2)/denominator2
    rowsj3 = loated.cell_value(i, 3)
    real3 = (rowsj3 - mix3)/denominator3
    print([real1, real2, real3], "\t")

程序员鼓励师:这里用了一个多线程的方法,因为此处的播放音频的时间比较多,可能会引起输入的卡顿,此时可以创造一个线程,在线程里播放音频.也就是threating.

from playsound import playsound
from pynput import keyboard
import random
from threading import Thread
sound = ["sound/1.mp3", "sound/3.mp3", "sound/4.mp3", "sound/5.mp3", "sound/6.mp3", "sound/7.mp3", "sound/8.mp3"]
count = 0


def release(s):
    print(s)
    global count
    count += 1
    if count % 20 == 0:
        i = random.randint(0, len(sound)-1)
        print(i)
        t = Thread(target=playsound, args=(sound[i], ))
        t.start()

soundstart = keyboard.Listener(on_release=release)
soundstart.start()
soundstart.join()

Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域。下面简单介绍下网络爬虫、自动化、数据分析与可视化、WEB开发、机器学习和其他常用的一些第三方库,如果有你感兴趣的库,不妨去试试它的功能吧。

1、网络爬虫

  • requests-对HTTP协议进行高度封装,支持非常丰富的链接访问功能。
  • PySpider-一个国人编写的强大的网络爬虫系统并带有强大的WebUI。
  • bs4-beautifulsoup4库,用于解析和处理HTML和XML。
  • Scrapy-很强大的爬虫框架,用于抓取网站并从其页面中提取结构化数据。可用于从数据挖掘到监控和自动化测试的各种用途
  • Crawley-高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等
  • Portia-可视化爬取网页内容
  • cola-分布式爬虫框架
  • newspaper-提取新闻、文章以及内容分析
  • lxml-lxml是python的一个解析库,这个库支持HTML和xml的解析,支持XPath的解析方式

2、自动化

  • XlsxWriter-操作Excel工作表的文字,数字,公式,图表等
  • win32com-有关Windows系统操作、Office(Word、Excel等)文件读写等的综合应用库
  • pymysql-操作MySQL数据库
  • pymongo-把数据写入MongoDB
  • smtplib-发送电子邮件模块
  • selenium-一个调用浏览器的driver,通过这个库可以直接调用浏览器完成某些操作,比如输入验证码,常用来进行浏览器的自动化工作。
  • pdfminer-一个可以从PDF文档中提取各类信息的第三方库。与其他PDF相关的工具不同,它能够完全获取并分析 P D F 的文本数据
  • PyPDF2-一个能够分割、合并和转换PDF页面的库。
  • openpyxl- 一个处理Microsoft Excel文档的Python第三方库,它支持读写Excel的xls、xlsx、xlsm、xltx、xltm。
  • python-docx-一个处理Microsoft Word文档的Python第三方库,它支持读取、查询以及修改doc、docx等格式文件,并能够对Word常见样式进行编程设置。

3、数据分析及可视化

  • matplotlib-Matplotlib 是一个 Python 2D 绘图库,可以生成各种可用于出版品质的硬拷贝格式和跨平台交互式环境数据。Matplotlib 可用于 Python 脚本,Python 和 IPython shell(例如 MATLAB 或 Mathematica),Web 应用程序服务器和各种图形用户界面工具包。”
  • numpy-NumPy 是使用 Python 进行科学计算所需的基础包。用来存储和处理大型矩阵,如矩阵运算、矢量处理、N维数据变换等。
  • pyecharts-用于生成 Echarts 图表的类库
  • pandas-一个强大的分析结构化数据的工具集,基于numpy扩展而来,提供了一批标准的数据模型和大量便捷处理数据的函数和方法。
  • Scipy: 基于Python的matlab实现,旨在实现matlab的所有功能,在numpy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。
  • Plotly-Plotly提供的图形库可以进行在线WEB交互,并提供具有出版品质的图形,支持线图、散点图、区域图、条形图、误差条、框图、直方图、热图、子图、多轴、极坐标图、气泡图、玫瑰图、热力图、漏斗图等众多图形
  • wordcloud-词云生成器
  • jieba-中文分词模块

4、WEB开发

  • Django-一个开放源代码的Web应用框架,由Python写成。 是Python生态中最流行的开源Web应用框架,Django采用模型、模板和视图的编写模式,称为MTV模式。
  • Pyramid是一个通用、开源的Python Web应用程序开发框架。它主要的目的是让Python开发者更简单的创建Web应用,相比Django,Pyramid是一个相对小巧、快速、灵活的开源Python Web框架。
  • Tornado-一种 Web 服务器软件的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快
  • Flask是轻量级Web应用框架,相比Django和Pyramid,它也被称为微框架。使用Flask开发Web应用十分方便,甚至几行代码即可建立一个小型网站。Flask核心十分简单,并不直接包含诸如数据库访问等的抽象访问层,而是通过扩展模块形式来支持。

5、机器学习

  • NLTK-一个自然语言处理的第三方库,NLP领域中常用,可建立词袋模型(单词计数),支持词频分析(单词出现次数)、模式识别、关联分析、情感分析(词频分析+度量指标)、可视化(+matploylib做分析图)等
  • TensorFlow-谷歌的第二代机器学习系统,是一个使用数据流图进行数值计算的开源软件库。
  • Keras -是一个高级神经网络 API,用 Python 编写,能够在 TensorFlow,CNTK 或 Theano 之上运行。它旨在实现快速实验,能够以最小的延迟把想法变成结果,这是进行研究的关键。”
  • Caffe-一个深度学习框架,主要用于计算机视觉,它对图像识别的分类具有很好的应用效果
  • theano-深度学习库。它与Numpy紧密集成,支持GPU计算、单元测试和自我验证,为执行深度学习中大规模神经网络算法的运算而设计,擅长处理多维数组。
  • Scikit-learn-是一个简单且高效的数据挖掘和数据分析工具,它基于NumPy、SciPy和matplotlib构建。Scikit-learn的基本功能主要包括6个部分:分类,回归,聚类,数据降维,模型选择和数据预处理。Scikit-learn也被称为sklearn。

6、其他常用

  • IPython-一个基于Python 的交互式shell,比默认的Python shell 好用得多,支持变量自动补全、自动缩进、交互式帮助、魔法命令、系统命令等,内置了许多很有用的功能和函数
  • PTVS-Visual Studio 的 Python 工具
  • pydub-支持多种格式声音文件,可进行多种信号处理、信号生成、音效注册、静音处理等
  • TimeSide-能够进行音频分析、成像、转码、流媒体和标签处理的Python框架
  • dnspython-DNS工具包
  • pygame-专为电子游戏设计的一个模块
  • PyQt5-pyqt5是Qt5应用框架的Python第三方库,编写Python脚本的应用界面
  • PIL(Pillow)-PIL库是Python语言在图像处理方面的重要第三方库,支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作
  • OpenCV-图像和视频工作库
  • Py2exe: 将python脚本转换为windows上可以独立运行的可执行程序。
  • WeRoBot 是一个微信公众号开发框架,也称为的微信机器人框架。WeRoBot可以解析微信服务器发来的消息,并将消息转换成成Message或者Event类型。
  • ```python
    class BertPooler(nn.Module):
        def __init__(self, config):
            super().__init__()
            self.dense = nn.Linear(config.hidden_size, config.hidden_size)
            self.activation = nn.Tanh()
    
        def forward(self, hidden_states):
            # We "pool" the model by simply taking the hidden state corresponding
            # to the first token.
            first_token_tensor = hidden_states[:, 0]
            pooled_output = self.dense(first_token_tensor)
            pooled_output = self.activation(pooled_output)
            return pooled_output
    from transformers.models.bert.configuration_bert import *
    import torch
    config = BertConfig.from_pretrained("bert-base-uncased")
    bert_pooler = BertPooler(config=config)
    print("input to bert pooler size: {}".format(config.hidden_size))
    batch_size = 1
    seq_len = 2
    hidden_size = 768
    x = torch.rand(batch_size, seq_len, hidden_size)
    y = bert_pooler(x)
    print(y.size())
    ```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值