【代码及应用】10个最常用的Python包!

世界上有超过200,000个Python程序包(这只是基于官方的Python程序包索引PyPI托管的程序包)这就引出了一个问题:拥有这么多的软件包,每个Python程序员都需要学习哪些软件包是最重要的?


在这里插入图片描述

1.Numpy

  • 您可以执行基本的数学运算,而无需任何特殊的Python包。但是,如果您要进行任何复杂的数学运算,则NumPy软件包将使您的编码工作变得更加轻松。
  • NumPy提供了一些工具来帮助构建多维数组,并对存储在其中的数据进行计算。您可以求解代数公式,执行常见的统计运算等等。
>>> import numpy as np  
>>> a = np.arange(15).reshape(3, 5)  
>>> a  
array([[ 0,  1,  2,  3,  4],  [ 5,  6,  7,  8,  9],  [10, 11, 12, 13, 14]])  
>>> a.shape  
(3, 5)  
>>> a.ndim  
2  
>>> a.dtype.name  
'int64'  
>>> a.itemsize  
8  
>>> a.size  
15  
>>> type(a)  
<class 'numpy.ndarray'>  
>>> b = np.array([6, 7, 8])  
>>> b  
array([6, 7, 8])  
>>> type(b)  
<class 'numpy.ndarray'>  
  • 尽管NumPy是一个有价值的Python软件包,可用于执行各种通用编程任务,但如果您想进行机器学习,则NumPy尤为重要,因为它为TensorFlow之类的库提供了部分基础。

2.Pendulum

  • 如果您至少有一点Python编程经验,则可能知道可以使用datetime模块来管理应用程序中的日期和时间。
  • 尽管datetime非常适合这些方面的基础工作,但Pendulum Python软件包使执行涉及日期和时间的更复杂的编码变得更加容易。使用起来更加直观,并且可以自动管理时区。
import pendulum   
now = pendulum.now("Europe/Paris")    
# Changing timezone  
now.in_timezone("America/Toronto")    
# Default support for common datetime formats  
now.to_iso8601_string()    
# Shifting  
now.add(days=2)  
  • 最棒的是,Pendulum旨在替代datetime。这意味着您可以将其与已经基于datetime编写的代码一起使用。除了少数几个例外,Pendulum同样可以工作,无需修改代码,同时提供普通datetime所没有的其他功能。

3.Python 图片处理包

  • 如果您的Python应用程序以任何方式与图像进行交互,则Python映像库(也称为PIL或Pillow)是Python必需的。它使编写以各种格式打开,修改和保存图像的代码变得容易。
from PIL 
import Image  
#Open image using Image module  
im = Image.open("images/cuba.jpg")  
#Show actual Image  
im.show()  
#Show rotated Image  
im = im.rotate(45)  
im.show()  
  • 如果您要对图像进行更高级的处理(例如图像识别,在这种情况下,OpenCV将是一个不错的选择),Pillow不会自行裁切的。但是对于基本的图像导入,处理和导出,Pillow是您的首选解决方案。
import cv2  
import numpy as np  
import matplotlib.pyplot as plt     
image = cv2.imread("C://gfg//tomatoes.jpg", 1)  
# Loading the image    
half = cv2.resize(image, (0, 0), fx = 0.1, fy = 0.1)  
bigger = cv2.resize(image, (1050, 1610))    
stretch_near = cv2.resize(image, (780, 540),   
interpolation = cv2.INTER_NEAREST)        
Titles =["Original", "Half", "Bigger", "Interpolation Nearest"]  
images =[image, half, bigger, stretch_near]  
count = 4     
for i in range(count):  plt.subplot(2, 2, i + 1)  plt.title(Titles[i])  plt.imshow(images[i])     plt.show()  

4.MoviePy

  • MoviePy代表视频,Pillow代表图像。它为与导入,修改和导出视频文件相关的常见任务提供了一系列功能。它还可以让您执行一些操作,例如将标题插入视频或将视频旋转90度(如果出于某种原因您决定这样做)。
  • 像Pillow一样,MoviePy也不能用作高级数据操作的工具。如果您正在编写视频编辑应用程序,则可能还需要依靠OpenCV(它可以同时处理视频和图像)来提供MoviePy缺少的高级功能。但是对于涉及Python代码视频的大多数标准任务,MoviePy可以很好地完成工作。
from skimage.filters 
import gaussian_filter  
from moviepy.editor 
import VideoFileClip   
def blur(image):  
""" Returns a blurred (radius=2 pixels) version of the image """  
return gaussian_filter(image.astype(float), sigma=2)    
clip = VideoFileClip("my_video.mp4")  
clip_blurred = clip.fl_image( blur )  
clip_blurred.write_videofile("blurred_video.mp4")  

5.requests

  • 编写发送HTTP请求的代码可能很棘手,这在很大程度上要归因于HTTP并未以人类易于阅读的方式精确地格式化数据。
  • Requests Python程序包(座右铭:“ HTTP for Humans”)通过自动执行许多繁琐的任务来解决此问题,让发送HTTP请求变得异常简单。它消除了添加查询字符串或执行POST表单编码的需要。它还可以使与HTTP服务器的连接自动保持活动状态,从而无需编写大量代码。
import requests  
from requests.exceptions 
import HTTPError    
for url in ['https://api.github.com', 'https://api.github.com/invalid']:  
try:response = requests.get(url)  
# If the response was successful, no Exception will be raised  
response.raise_for_status()  
except HTTPError as http_err:  
print(f'HTTP error occurred: {http_err}')  # Python 3.6  
except Exception as err:  
print(f'Other error occurred: {err}')  # Python 3.6  
else:  
print('Success!')  
  • 简而言之,如果您的应用程序通过HTTP发送任何数据,则请求是必不可少的程序包。

6.Tkinter

  • 是否要开发具有图形用户界面(GUI)的Python应用程序?
  • 有很多做图形界面的Python包(实际上,我们都可以来个Python GUI前十排行榜)。但是我认为大多数Python开发人员都会同意Tkinter是用于创建GUI的最重要且也是最常用的框架。它将Python绑定到TK GUI工具箱,该工具箱几乎可在所有现代操作系统上运行。
from tkinter 
import *    
window = Tk()   
window.title("Welcome to LikeGeeks app")    
window.mainloop()  
  • 除非您强烈希望使用其他GUI工具包,否则Tkinter可能是创建Python GUI的最佳起点。

7.PyQt

  • 尽管前面大力推荐Tkinter,PyQT(另一个用于构建GUI的Python软件包)也是一个有力的竞争者。它提供了到Qt工具箱的绑定(您猜对了),该工具箱也是跨平台的。它比Tkinter用于重型GUI编程。这意味着如果您要构建具有非常简单的界面的应用程序(例如,只有带有一些按钮和文本字段的窗口),使用Tkinter就对了。但如果要构建一个很复杂的桌面程序,比如开发一个QQ程序,则PyQT会更适合。
  • Qt Designer Python

8.Pandas

  • 有大量的Python软件包设计用于处理复杂的数据集。但是可以说,Pandas是最重要的。Pandas可以帮助您处理和分析大量数据,而无需学习专门的数据处理语言(例如R)。
  • Pandas有其局限性,因为它不适合用于高级统计建模(在这种情况下,您可能想学习R或使用statsmodels之类的Python包)。但是,如果您需要执行诸如处理时间序列数据或对数据集进行统计分析之类的工作,Pandas可以为您服务。
In [5]: dates = pd.date_range("20130101", periods=6)    
In [6]: dates  
Out[6]:   
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04','2013-01-05', '2013-01-06'],  
dtype='datetime64[ns]', freq='D')    
In [7]: df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))    
In [8]: df  
Out[8]:A         B         C         D  
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632  
2013-01-02  1.212112 -0.173215  0.119209 -1.044236  
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804  
2013-01-04  0.721555 -0.706771 -1.039575  0.271860  
2013-01-05 -0.424972  0.567020  0.276232 -1.087401  
2013-01-06 -0.673690  0.113648 -1.478427  0.524988  

9.Pywin32

  • 特别是对于Windows Python编程,Pywin32是必备软件包。它提供对许多本机Windows API函数的访问,使您可以执行诸如与Windows注册表进行交互,使用Windows剪贴板等操作。
  • 如果您要构建跨平台的Python应用程序,那么Pywin32并不能为您带来很多好处,但是Windows开发人员可能会发现他们非常喜欢它,以至于使用它代替了本机Windows工具。
import win32com.client as win32  
excel = win32.gencache.EnsureDispatch('Excel.Application')    
excel.Visible = True_ = input("Press ENTER to quit:")    
excel.Application.Quit()  

10.Pytest

  • 如果您有一个复杂的Python开发项目,那么对新代码执行测试就至关重要。
  • Pytest软件包提供了各种模块来帮助您完成此任务。无论是简单的单元测试还是更复杂的功能测试,Pytest都可以帮助您编写它。
# test_capitalize.py    
import pytest    
def test_capital_case():  
assert capital_case('semaphore') == 'Semaphore'    
def test_raises_exception_on_non_string_arguments():  
with pytest.raises(TypeError):  
capital_case(9)  
  • 如果您最喜欢的Python库或框架未在前十个必备Python软件包中列出此列表,请不要冒犯。
  • Python生态系统已经生成了许多有价值的软件包,以至于即使在前100名列表中,也不可能包括所有重要软件包,更不用说前10名列表了。但是,对于通用Python编程,上述软件包基本是必备。

图片

总结

  • 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利

  • 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!

  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,学习不再是只会理论
  • ④ 华为出品独家Python漫画教程,手机也能学习

可以扫描下方二维码领取【保证100%免费

在这里插入图片描述

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

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

相关文章

Java面试要点01- 基本数据类型与包装类详解

本文目录 一、引言二、基本数据类型详解2.1 数值类型2.2 代码示例 三、包装类详解3.1 包装类介绍3.2 包装类的主要用途3.3 代码示例 四、注意事项和最佳实践4.1 数值计算注意事项4.2 包装类使用建议 五、面试重点详解5.1 基本类型和包装类的区别5.2 自动装箱和拆箱的原理5.3 In…

铠侠代理商 | KIOXIA SLC闪存选型和应用

一、铠侠&#xff08;KIOXIA&#xff09;的SLC闪存系列 铠侠SLC NAND可以高速写入大量数据&#xff0c;具有高的擦写次数耐久性和可靠性的1位/单元非易失性存储器。铠侠SLC NAND闪存产品系列具有多种容量和封装形式的选择&#xff0c;可满足嵌入式市场的不同需求。 铠侠的SLC…

ts定义接口返回写法

接口&#xff08;未进行ts定义&#xff09; export async function UserList(params: {// keyword?: string;current?: number;pageSize?: number;},// options?: { [key: string]: any }, ) {return request<API1.UserList>(http://geek.itheima.net/v1_0/mp/artic…

#多语言爬取京东价格信息 python 比价api接入指南

以下是使用 Python 接入京东价格信息比价 API 的一般指南&#xff1a; 寻找合适的比价 API 服务&#xff1a; 市面上有一些第三方数据服务提供商提供京东比价 API。这些服务通常需要你注册账号并申请 API Key 和 API Secret 等凭证&#xff0c;以便进行接口调用。你可以根据自己…

超详细:三大范式和反范式设计详解

目录 1、三大范式 第一范式&#xff1a; 列不可再分 。 第二范式&#xff1a; 行可以唯一区分 第三范式&#xff1a;确保数据的完整性、减少数据冗余和避免更新异常。 反方式模式 实验数据&#xff1a;模拟两张百万量级的数据表 反范式优化实验对比 反范式存在的问题 &am…

新标准大学英语综合教程1课后习题答案PDF第三版

《新标准大学英语&#xff08;第三版&#xff09;综合教程1 》是“新标准大学英语&#xff08;第三版&#xff09;”系列教材之一。本书共包含6个单元&#xff0c;从难度和话题上贴近大一上学生的认知和语言水平&#xff0c;包括与学生个人生活领域和社会文化等相关内容&#x…

Llama 3.2-Vision 多模态大语言模型

1. 引言 Llama 3.2-Vision多模态大型语言模型(文本 图像)是一个图像推理生成模型&#xff0c;按照官方的说法&#xff0c;在常见行业基准测试上&#xff0c;其性能优于许多可用的开源和闭源多模态模型。Llama 3.2-Vision有两个版本&#xff0c;一个是11B (7.9G)&#xff0c;另…

OpenObserve云原生平台指南:在Ubuntu上快速部署与远程观测

文章目录 前言1. 安装Docker2. Docker镜像源添加方法3. 创建并启动OpenObserve容器4. 本地访问测试5. 公网访问本地部署的OpenObserve5.1 内网穿透工具安装5.2 创建公网地址 6. 配置固定公网地址 前言 本文主要介绍如何在Linux系统使用Docker快速本地化部署OpenObserve云原生可…

隧道论文阅读2-采用无人融合扫描数据的基于深度学习的垂直型隧道三维数字损伤图

目前存在的问题&#xff1a; 需要开发新的无人测量系统测量垂直隧道图像数据量巨大&#xff0c;基于深度学习完成损伤评估跟踪获取图像位置的困难&#xff0c;对大型基础设施感兴趣区域(roi)的2d和3d地图建立进行了研究&#xff0c;对整个目标结构的损伤定位仍然具有挑战性。为…

【从VAE到LDM】Variational Auto Encoder原理以及关于Latent Diffusion的思考

论文链接&#xff1a;High-Resolution Image Synthesis with Latent Diffusion Models 官方实现&#xff1a;CompVis/latent-diffusion、CompVis/stable-diffusion 视频讲解&#xff1a;一个视频看懂VAE的原理以及关于latent diffusion的思考 前言 目前的扩散模型范式基本上都…

1111fxh,MYSQL加锁规则

怎么查看一个事务中对索引的加锁情况 -- 这条语句可以看到事务执行过程中加了哪些锁 select * from performance_schema.data_locks X是next-key lock 混合锁 X,REC_NOT_GAP就是行锁 X,GAP是间隙锁 可重复读下的加锁规则 2原则2优化 1.加锁的基本单位是next-key lock,即行…

mysql中数据不存在却查询到记录?

前言 首先看下面的查询语种 select * from AudioKnowledgeChatInfo where AudioId297795550566600706; 查询结果如下 看到上面的查询结果&#xff0c;是不是一脸懵&#xff1f;这audioId明显不对啊&#xff0c;怎么查询到了&#xff1f; 原因剖析 首先我们来看看数据库表…

拿不下总统之位,那就用热加载拿下验证码识别与爆破好了!

大家好&#xff0c;这里是在总统选举中惜败的超级牛 虽然没能拿下阿美利卡总统之位 但是牛牛的热加载功能&#xff0c;却能轻松拿下验证码的识别与爆破 验证码一般会在注册、登录等功能&#xff0c;用来防止自动化工具的攻击。一般的验证码生成过程如下图所示&#xff1a; …

闯关leetcode——202. Happy Number

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/happy-number/description/ 内容 Write an algorithm to determine if a number n is happy. A happy number is a number defined by the following process: Starting with any positive inte…

如何使用 Web Scraper API 高效采集 Facebook 用户帖子信息

目录 前言一、什么是Web Scraper API二、Web Scraper API 的优势&#xff1a;三、Web Scraper API 适用场景四、实践案例目标需求视频讲解1、选择Web Scraper API2、登录注册3、进入用户控制面板4、选择API5、触发数据收集 API6、获取爬虫结果7、分析爬虫结果&#xff08;1&…

json转excel,读取json文件写入到excel中【rust语言】

一、rust代码 将json文件写入到 excel中。&#xff08;保持json &#xff1a;key原始顺序&#xff09; use indexmap::IndexMap; use serde::Deserialize; use serde_json::{Value, from_str}; use std::error::Error; use std::io::{self, Write}; use std::path::{Path}; u…

2024年下半年系统规划与管理师论文真题

试题一、论IT服务规划设计 IT服务规划设计处于整个IT服务生命周期中的前端&#xff0c;可以帮助IT服务供方了解客户的需求并对其进行全面的需求分析&#xff0c;规划设计的范围不仅包括新的服务&#xff0c;还包括服务连续性保障服务水平的满足和对标准、规则的遵从&#xff0…

无人机动力测试台如何快速外接第三方传感器

前言 动力测试台对于测试动力系统的拉力、扭矩、RPM 和效率至关重要。将传感器集成到您的测试中增加了另一层优化&#xff0c;可以将您的性能提升到一个新的水平。 在无人驾驶行业中&#xff0c;有充分的证据表明&#xff0c;从外部传感器收集数据可能具有挑战性。为了解决这…

金蝶云星空与旺店通数据集成解决方案实例

金蝶云星空与旺店通旗舰奇门的数据集成案例分享 在企业日常运营中&#xff0c;数据的高效流转和准确对接是确保业务顺畅运行的关键。本文将聚焦于一个具体的系统对接集成案例&#xff1a;如何将金蝶云星空中的直接调拨单数据无缝集成到旺店通旗舰奇门平台。 本次集成方案命名…

gorm使用注意事项

1. 使用updates更新字段为0或""时 在updates更新时&#xff0c;会默认将数值为0、字符串为""等忽略掉&#xff0c;不会更新&#xff1b;比如 db.Model(&user).Updates(User{Name: "hello", Age: 18, Active: false, Games: 0, Friend: &qu…