14个开发人员应该了解的Python库和模块

库和模块使程序员的生活更加顺利。

当您在项目中工作时,可能会遇到无法用编程语言的标准编码解决的情况。我们需要一些库和模块来解决这些问题。

幸运的是,python支持大量的模块和库。python有内置的模块,也有用于开发的第三方库和模块。我们将先了解内置的模块。

python提供了许多用于不同用例的内置模块。我们将根据它们的用途逐个学习这些模块。

collections

python有不同类型的集合来存储数据的集合。例如,元组,列表,字典等都是python的一些内置集合。 collections 模块为内置集合提供了其他功能。

如果您从collections模块中获取deque数据集合,它更像是一个python列表。 但是,我们可以从两侧推入弹出元素。 它比列表更快。 您可以根据需要使用deque。让我们看一些使用collections.deque数据集合的真实编码。

import collections
nums = [1, 2, 3]
# 从列表创建deque集合
deque = collections.deque(nums)

print(deque)

# 在末尾添加一个元素
deque.append(4)

print(deque)

# 在开头添加一个元素
deque.appendleft(0)

print(deque)

# 删除末尾的元素
deque.pop()

print(deque)

# 删除开头的元素
deque.popleft()

print(deque)

运行上述代码,查看结果。在collections 模块中还有其他数据集合。

其中一些是:

counter 返回一个包含列表中元素频率的字典。

它是dict类的子类。

userlist 用于列表的快速子类。
userdict 用于字典的快速子类。
userstring 用于字符串的快速子类。

进入collections模块的文档,探索所有的数据集合和方法。

快速提示:-使用python的dir(object)内置方法查看对象的所有方法。

csv

我们可以使用csv(逗号分隔值)文件来存储表格数据。这是从电子表格和数据库导入和导出数据的最常用格式。python带有一个名为csv 的模块来处理csv文件。

让我们看一个从csv文件中读取数据的例子。

在您的电脑上创建一个名为sample.csv的文件,并粘贴以下数据。

name,age,graduation year

hafeez,21,2021

aslan,23,2019

rambabu,21,2021

我们在csv模块中有读取和写入的方法。我们将看到如何使用csv模块从csv文件中读取数据。

使用csv模块打开'sample.csv'文件:

import csv

with open('sample.csv') as file:
    # 创建读取器
    reader = csv.reader(file)
    
    # 使用循环逐行读取
    for row in reader:
        # row是包含csv文件中元素的列表
        # 使用join(list)方法将列表连接起来
        print(','.join(row))

运行上述代码以查看结果。

我们还将有一个名为csv.writer()的对象,用于将数据写入csv文件中。使用dir()help()内置方法自己尝试其他方法。我们还有一个名为json的模块,用于处理json文件。它也是一个内置模块。

随机

python有一个名为random的模块,允许随机生成数据。我们可以使用不同的方法从random模块随机生成任何内容。你可以在应用程序中使用该模块,例如井字游戏、掷骰游戏等。

让我们看一个简单的示例程序,从给定范围内生成随机整数。

import random

# 从范围1-100生成一个随机数
print(random.randint(1, 100)) 

使用dir()help()方法检查random模块的其他方法。让我们使用random模块编写一个小而简单的游戏。我们可以称之为数字猜谜游戏

什么是数字猜谜游戏?

程序将在1-100的范围内生成一个随机数。用户将猜数字,直到与程序生成的随机数相匹配。每次都会打印用户的数字是低于还是高于随机数。然后,源代码将显示猜测的次数。

请查看以下代码以获取上述程序。

# 导入random模块
import random

# 生成随机数
random_number = random.randint(1, 100)

# 将猜测计数初始化为0
guess_count = 0

# 循环运行,直到用户猜中随机数
while true:
    # 获取用户输入

    user_guessed_number = int(input("在1-100的范围内输入一个数字:"))

    # 检查是否相等
    if user_guessed_number == random_number:
        print(f"你在{guess_count}次猜测中猜对了数字")
        # 终止循环
        break
    elif user_guessed_number  random_number:
        print("你的数字太大了")

    # 增加猜测计数
    guess_count += 1

tkinter

tkinter是一个用于开发gui(图形用户界面)应用程序的内置模块。它适用于初学者。我们可以开发gui应用程序,例如计算器、登录系统、文本编辑器等等;有很多资源可以学习使用tkinter进行gui开发。

最好的支持是参考官方的文档。要开始使用tkinter,请转到文档,开始创建漂亮的gui应用程序。

# 第三方模块

requests

requests模块用于向服务器发送各种http请求。它允许发送http/1.1请求。我们还可以使用python字典添加头部、数据和其他内容。由于它是第三方模块,我们需要安装它。在终端或命令行中运行以下命令来安装requests模块。

pip install requests

使用requests模块非常简单。我们可以在没有任何先前知识的情况下开始使用requests。让我们看看如何发送get请求以及它返回什么。

import requests

# 发送get请求
request = requests.get("https://www.google.com/")

# 
print(request.status_code)
print(request.url)
print(request.request)

以上代码将打印状态码、url和请求方法(get、post)。您还将得到url的源代码。您可以使用request.content字节来访问它。前往requests模块的文档以了解更多信息。

beautifulsoup4

beautifulsoup库用于网页抓取。这是一个很方便的模块。即使是初学者也可以使用文档开始使用它。请参阅抓取客户报告详细信息的示例代码。

您可以通过在终端/命令行中输入以下命令来安装beautifulsoup。

pip install beautifulsoup4

接下来是您的第一个抓取程序的简单示例。

## 使用beautifulsoup抓取consumerreport产品列表

## 导入bs4和requests模块
import bs4
import requests

## 初始化url
url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm"

## 使用requests模块的get方法从页面获取响应
page = requests.get(url)

## 将页面内容存储在变量中
html = page.content

## 创建beautifulsoup对象
soup = bs4.beautifulsoup(html, "lxml")

## 查看包含名称和链接的标签的类或id
div_class = "crux-body-copy"

## 使用find_all方法获取所有div
div_tags = soup.find_all("div", class_=div_class) ## 查找具有指定类的div

## 查看带有a标签的所有标签,它们在div内部包含名称和链接
for tag in div_tags:
    print(tag)

运行上面的代码,看看网页抓取的神奇之处。还有更多的网络抓取框架供您尝试。

# 数据科学和机器学习

有一些专门为数据科学和机器学习创建的库。所有这些都是用c开发的。它们运行速度非常快。

numpy

numpy用于科学计算。

它允许我们处理多维数组。python中没有数组实现。主要开发人员在他们的机器学习项目中使用numpy。它易于学习,是开源库。几乎每个机器学习工程师或数据科学家都使用这个模块进行复杂的数学计算。

运行以下命令来安装numpy模块。

pip install numpy

pandas

pandas是一个数据分析模块。我们可以使用pandas 库最有效地过滤数据。它提供了各种方便使用的数据结构。它还提供了不同文件格式的文件处理。

使用以下命令安装该模块。

pip install pandas

matplotlib

matplotlib是一个二维图形绘制库。您可以使用matplotlib可视化数据。

我们可以生成不同格式的图像。我们绘制不同类型的图表,如条形图、误差图、直方图、散点图等等。您可以使用以下命令安装matplotlib

pip install matplotlib

快速注意:-您可以安装anaconda以获取数据科学所需的所有库和模块。

如果您真的想要学习python进行数据科学和机器学习,请查看这个精彩的udemy课程

tensorflow

tensorflow是由google开发的端到端机器学习python库。

使用tensorflow,您可以运行标准机器学习算法,创建神经网络并进行数值计算。然而,需要对向量和代数有深入的理解才能使用tensorflow。

如何使用tensorflow

创建一个项目,进入该项目,然后使用以下命令安装tensorflow;

pip install tensorflow-cpu

tensorflow之所以很受欢迎,有以下几个原因;

  • 灵活: tensorflow可以进行各种机器学习任务,如语音识别、图像识别和自然语言处理等。
  • 可扩展: 您可以使用tensorflow在各种硬件系统上训练和部署机器学习模型,如tpu、gpu和cpu。
  • 大型社区: tensorflow已经吸引了一个庞大的用户群体,在github上获得了超过174k stars and 88k forks
  • 可扩展: 您可以定制tensorflow以满足项目的特定需求。

tensorflow是一个免费的开源项目,其源代码托管在github上。

keras

keras是建立在tensorflow上的深度学习应用程序编程接口(api),是一个机器学习平台。深度学习是机器学习的一个子集。keras旨在帮助快速实验,使用户能够从想法到产品快速迭代。

虽然tensorflow作为可微分编程的基础架构层,但keras提供了构建和交付机器学习解决方案的基本构建块和抽象。使用keras,工程师可以利用tensorflow的跨平台能力和可扩展性功能。

要开始使用keras,请使用pip安装它;

pip install keras

为什么选择keras?

  • 灵活性: keras采用了“逐渐揭示复杂性”原则构建。因此,您可以创建各种不同的神经网络,因为它支持不同的优化器、激活函数和层类型。 
  • 易于使用: keras的设计简单而不简单。作为一名工程师,keras让您专注于重要的解决方案,同时减轻您的认知负担。 
  • 庞大的社区: keras有一个庞大的新兴社区,在github上获得了57.9k颗星星。 
  • 可扩展性: 您可以使用keras进行实验。但是,您也可以在应用程序不断发展的过程中继续使用此api。 

keras是一个免费的开源深度学习python库。 

scikitt-learn

scikitt-learn是一个基于scipy构建的python机器学习模块。该模块提供了高效简单的工具,工程师可以使用这些工具分析预测数据。 

scikitt-learn有很多用途,例如分类、聚类、回归和预处理等。 

在分类功能中,您可以使用此模块识别对象的类别。这个功能在图像识别和垃圾邮件检测中非常有用。 

您可以使用以下pip命令将scikitt-learn安装到项目文件夹中;

pip install scikit-learn

安装完成后,可以通过以下方式导入文件来验证是否设置正确;

import sklearn

为什么选择scikitt-learn?

  • 多种机器学习算法: 您可以访问从决策树、神经网络和随机森林到支持向量机等算法。 
  • 模型可视化: 该模块具有用于可视化机器学习模型的各种工具。 
  • 模型评估: 您可以使用该模块进行交叉验证和评分指标。 
  • 数据预处理: 您可以使用该模块的数据预处理工具进行降维、归一化和特征选择。 

scikkit-learn是开源的,可以在商业环境中使用,具有bsd许可证。 

# web框架

我们可以在python中找到许多web框架。我们将讨论两个开发人员广泛使用的框架。这两个框架分别是djangoflask

django

django是一个在python中开发的开源web框架。使用django可以方便地创建网站。我们可以使用这个框架生成任何类型的网站。一些使用django构建的最受欢迎的网站包括instagram、bitbucket、disqus和mozilla firefox等。

  • 借助django的功能,我们可以快速构建复杂的网站。
  • django已经完成了web开发所需的许多任务。
  • 它还提供了对抗sql注入、跨站脚本、跨站请求伪造和点击劫持等攻击的安全性。
  • 我们可以构建任何网站,从内容管理系统到社交网站。

django的文档是明确的。您必须熟悉python才能使用django。但是如果您不熟悉python,也不用担心。学习django很容易。

flask

flask是一个在python中开发的微型web框架。

这比django更符合python风格。这里有很好的文档。它使用了jinja模板引擎。用flask创建大型网站很复杂。像url路由、请求分发、安全cookie、会话等大多数功能,django和flask都有。

根据你的网站复杂程度选择框架。django在开发者中越来越受欢迎。它是python中最常用的web开发框架。

结论

希望你了解了python的不同模块、库和框架。

每个人都曾经是初学者。

无论你想开始什么,都先去文档中学习。如果你无法理解文档,可以在这些教育网站上找到速成课程

你也可以查看我们关于如何在不同操作系统上安装pip的文章

类似文章