您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

Python常用库示例脚本

时间:2023-07-13 20:36:52  来源:微信公众号  作者:测试开发学习交流

Python/ target=_blank class=infotextkey>Python是一门功能强大的语言,拥有大量的库和工具,可以简化日常工作中的许多任务。本文将介绍Python中的常用库,并提供一个使用这些库的实战项目,以帮助您更好地理解和掌握这些库。

1. NumPy

NumPy是Python中的一个数值计算库,用于高效地处理大型数组和矩阵。它也提供了许多数学函数,可用于线性代数、傅里叶变换等任意复杂的数学运算。

实战项目:

在本项目中,我们将使用NumPy库来计算由两个互相垂直的向量组成的平面上的所有向量。我们将使用NumPy库的arange()和reshape()函数来创建两个数组,并使用内积(dot)函数和叉积(cross)函数来计算所有的向量。

代码:
import numpy as np# 生成两个向量a = np.arange(0, 10, 2)b = np.arange(5)# 通过内积计算所有向量的数组dot_product = np.dot(np.array(np.meshgrid(a, b)).T.reshape(-1, 2), [1, -1])# 通过叉积计算所有向量的数组cross_product = np.cross(np.array(np.meshgrid(a, b)).T.reshape(-1, 2), [1, -1])# 打印所有向量的数组print('All Vectors:')print(np.array(np.meshgrid(a, b)).T.reshape(-1, 2))# 打印内积计算出的所有向量的数组print('Dot Product Vectors:')print(dot_product)# 打印叉积计算出的所有向量的数组print('Cross Product Vectors:')print(cross_product)

2. Pandas

Pandas是Python中的一个数据分析库,用于处理和操作数据集。它可以轻松地读取、过滤、切片、汇总和可视化数据。Pandas最常见的数据结构是DataFrame,可以把它看做是一个二维表格。

实战项目:

在本项目中,我们将使用Pandas库来处理海盗宝藏数据,然后根据一些统计信息来对数据进行分析。

代码:
import pandas as pd# 读取CSV文件生成DataFrame对象df = pd.read_csv('pirate_treasure.csv')# 打印出所有海盗的名字pirate_names = df['pirate']print('nAll Pirate Names:')print(pirate_names)# 打印海盗所拥有的金币数量total_gold = df['gold'].sum()print('nTotal Gold Across All Pirates:')print(total_gold)# 打印海盗的平均金币数量average_gold = df['gold'].mean()print('nAverage Gold Per Pirate:')print(average_gold)# 打印所有宝藏的平均价值average_treasure_value = df[['gold', 'gems']].sum().sum() / df.shape[0]print('nAverage Treasure Value:')print(average_treasure_value)

3. Matplotlib

Matplotlib是Python中的一个数据可视化库,用于创建各种图表和可视化。它提供了许多选项和特性来自定义图表的外观和感觉。

实战项目:

在本项目中,我们将使用Matplotlib库来创建一张柱状图,用于表示不同城市的温度。

代码:
import matplotlib.pyplot as plt# 数据cities = ['New York', 'London', 'Paris', 'Tokyo', 'ShanghAI']temperatures = [18, 15, 19, 21, 23]# 创建一个柱状图,并设置标题和标签plt.bar(cities, temperatures)plt.title('Temperature by City')plt.xlabel('City')plt.ylabel('Temperature (Celsius)')# 显示图表plt.show()

4. Scikit-learn

Scikit-learn是Python中的一个机器学习库,提供了许多算法和工具,可用于创建分类、聚类和回归模型等。它也提供了许多功能,用于特征提取、模型选择和调整模型超参数等。

实战项目:

在本项目中,我们将使用Scikit-learn库来创建一个朴素贝叶斯分类器,以识别一份垃圾邮件。

代码:
from sklearn.naive_bayes import MultinomialNBfrom sklearn.feature_extraction.text import CountVectorizer# 训练数据,垃圾邮件已被标记为1,常规邮件已被标记为0train_data = ['you won the lottery', 'to the moon and back', 'make a million dollars fast', 'hey john how are you', 'how about lunch today', 'earn money from home', 'get rich quick', 'john how about dinner tonight']train_labels = [1, 0, 1, 0, 0, 1, 1, 0]# 创建一个CountVectorizer对象来计算单词出现的频率count_vectorizer = CountVectorizer()# 将训练数据向量化train_array = count_vectorizer.fit_transform(train_data)# 训练朴素贝叶斯分类器naive_bayes_classifier = MultinomialNB()naive_bayes_classifier.fit(train_array, train_labels)# 测试数据test_email = ['how about earning money from home']test_array = count_vectorizer.transform(test_email)# 运行测试数据,并输出判断结果predicted_label = naive_bayes_classifier.predict(test_array)print(predicted_label)

5. Requests

Requests是Python中的一个HTTP库,用于在Python中处理HTTP请求。它可以在Python中执行各种HTTP方法,如GET、POST、PUT、DELETE等,还可以使用SSL和代理。

实战项目:

在本项目中,我们将使用Requests库来获取并处理一个网络页面的内容。

代码:
import requests# 获取网络页面response = requests.get('https://www.python.org/')# 打印HTTP状态码print('HTTP Status code: ' + str(response.status_code))# 打印网络页面html代码print(response.text)

6. Beautiful Soup

Beautiful Soup是Python中的一个HTML和XML解析库,用于从HTML或XML文件中提取数据。它可以帮助Python程序员处理Web数据,包括解析、搜索和遍历HTML或XML文件中的元素。

实战项目:

在本项目中,我们将使用Requests库获取网络页面,然后使用Beautiful Soup库来解析其中的HTML。

代码:
import requestsfrom bs4 import BeautifulSoup# 获取网络页面,并用Beautiful Soup库解析HTMLresponse = requests.get('https://www.python.org/')soup = BeautifulSoup(response.text, 'html.parser')# 打印页面标题和第一个段落的内容print('Page Title: ' + soup.title.string)print('First Paragraph: ' + soup.p.string)

7. Selenium

Selenium是Python中的一个自动化浏览器测试和网络爬虫库,用于模拟用户操作和对用户界面进行测试。

实战项目:

在本项目中,我们将使用Selenium库来自动登录Twitter账号,并发布一条推文。

代码:
from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom time import sleep# 指定Chrome驱动的位置driver = webdriver.Chrome('/usr/local/bin/chromedriver')# 打开Twitter并登录driver.get('https://twitter.com/')sleep(3)login = driver.find_elements_by_xpath('//*[@id="doc"]/div[1]/div/div[1]/div[2]/a[3]')login[0].click()user = driver.find_elements_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/div[1]/input')user[0].send_keys('YourUsername')user = driver.find_element_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/div[2]/input')user.send_keys('YourPassword')LOG = driver.find_elements_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/div[3]/button')LOG[0].click()sleep(3)# 发布推文tweet = driver.find_elements_by_xpath('//*[@id="tweet-box-home-timeline"]')tweet[0].send_keys('This is a tweet from Python!')button = driver.find_elements_by_xpath('//*[@id="timeline"]/div[2]/div/form/div[3]/div[2]/button')button[0].click()print('Done')

8. Pygame

Pygame是Python中的一个游戏开发和多媒体库,用于创建各种类型的游戏和交互式多媒体应用程序。

实战项目:

在本项目中,我们将使用Pygame库来创建一个基于键盘的反应生存游戏,这个游戏将会计算用户的得分和移动玩家,可通过箭头键进行操作。

代码:

import pygameimport random# 初始化Pygamepygame.init()# 定义屏幕的大小width = 800height = 600# 设置屏幕大小并创建窗口screen = pygame.display.set_mode((width, height))pygame.display.set_caption("Keyboard Reaction Game")# 设置游戏时间长度和倒计时时钟game_time = 30timer = pygame.time.Clock()# 设置玩家和食物的大小player_size = 50food_size = 25# 设置颜色white = (255, 255, 255)black = (0, 0, 0)red = (255, 0, 0)# 初始化玩家和食物的位置player_x = width * 0.5 - player_size * 0.5player_y = height * 0.5 - player_size * 0.5food_x = random.randint(food_size, width - food_size)food_y = random.randint(food_size, height - food_size)# 初始化得分和游戏是否结束的标记score = 0game_over = False# 游戏循环while not game_over:    # 处理事件    for event in pygame.event.get():        if event.type == pygame.QUIT:            game_over = True        elif event.type == pygame.KEYDOWN:            if event.key == pygame.K_LEFT:                player_x -= 10            elif event.key == pygame.K_RIGHT:                player_x += 10            elif event.key == pygame.K_UP:                player_y -= 10            elif event.key == pygame.K_DOWN:                player_y += 10    # 清空屏幕    screen.fill(white)    # 绘制玩家和食物    pygame.draw.rect(screen, red, [food_x, food_y, food_size, food_size])    pygame.draw.rect(screen, black, [player_x, player_y, player_size, player_size])    # 判断是否吃到食物    if abs(player_x - food_x) < food_size and abs(player_y - food_y) < food_size:        score += 1        food_x = random.randint(food_size, width - food_size)        food_y = random.randint(food_size, height - food_size)    # 绘制得分    font = pygame.font.Font(None, 36)    text = font.render("Score: " + str(score), True, black)    screen.blit(text, (10, 10))    # 更新屏幕    pygame.display.update()    # 更新游戏时钟和计时器    game_time -= 1    if game_time == 0:        game_over = True    else:        timer.tick(60)# 游戏结束,显示得分font = pygame.font.Font(None, 72)text = font.render("Final Score: " + str(score), True, black)screen.blit(text, (width * 0.5 - text.get_width() * 0.5, height * 0.5 - text.get_height() * 0.5))pygame.display.update()# 等待直到用户关闭游戏while True:    for event in pygame.event.get():        if event.type == pygame.QUIT:            pygame.quit()            quit()

 

9. Flask

Flask是Python中的一个Web框架,用于构建Web应用程序。Flask是一个轻量级框架,但却非常强大,可以用于处理各种Web开发任务。

实战项目:

在本项目中,我们将使用Flask框架来创建一个简单的Web应用程序,用户可以通过它提交一个表单,并将表单的内容显示在Web页面上。

代码:
from flask import Flask, render_template, request# 创建Flask应用程序App = Flask(__name__)# 定义表单提交路由@app.route('/submit', methods=['POST'])def submit(): # 从表单获取文本内容 text = request.form['text'] # 渲染模板并返回 return render_template('submit.html', text=text)# 定义主路由@app.route('/')def index(): # 渲染模板并返回 return render_template('index.html')# 运行Flask应用程序if __name__ == '__main__': app.run(debug=True)

10. PyTorch

PyTorch是一个基于Python的科学计算包,用于构建深度学习神经网络。它具有灵活性和速度,可以用于对各种类型的数据进行高效的计算。

实战项目:

在本项目中,我们将使用PyTorch库来创建和训练一个深度学习神经网络,用于识别图像中的数字。

代码:

import torchimport torch.nn as nnimport torchvision.datasets as dsetsimport torchvision.transforms as transforms# 定义神经网络类class Neura.NET(nn.Module): def __init__(self, input_size, hidden_size, num_classes): super(NeuralNet, self).__init__() self.fc1 = nn.Linear(input_size, hidden_size) self.relu = nn.ReLU() self.fc2 = nn.Linear(hidden_size, num_classes) def forward(self, x): out = self.fc1(x) out = self.relu(out) out = self.fc2(out) return out# 设置参数input_size = 784hidden_size = 500num_classes = 10num_epochs = 5batch_size = 100learning_rate = 0.001# 加载数据集并进行预处理train_dataset = dsets.MNIST(root='data', train=True, transform=transforms.ToTensor(), download=True)test_dataset = dsets.MNIST(root='data', train=False, transform=transforms.ToTensor())# 定义数据集加载器train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=batch_size, shuffle=True)test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=batch_size, shuffle=False)# 初始化神经网络neural_net = NeuralNet(input_size, hidden_size, num_classes)# 定义损失函数和优化器criterion = nn.CrossEntropyLoss()optimizer = torch.optim.Adam(neural_net.parameters(), lr=learning_rate)# 训练神经网络total_step = len(train_loader)for epoch in range(num_epochs): for i, (images, labels) in enumerate(train_loader): # 调整输入形状 images = images.reshape(-1, 28*28) # 前向传播 outputs = neural_net(images) loss = criterion(outputs, labels) # 反向传播和优化 optimizer.zero_grad() loss.backward() optimizer.step() # 打印训练状态 if (i+1) % 100 == 0: print ('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, i+1, total_step, loss.item()))# 测试神经网络with torch.no_grad(): correct = 0 total = 0 for images, labels in test_loader: # 调整输入形状 images = images.reshape(-1, 28*28) # 前向传播 outputs = neural_net(images) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() # 计算并打印精度 print('Accuracy of the network on the 10000 test images: {} %'.format(100 * correct / total))

以上是几个常用的Python框架以及它们在实战项目中的应用示例,希望能对你有所帮助。当然,Python的应用远不止以上这些框架,我们可以根据具体的需求选择适合的框架和工具来进行开发。



Tags:Python   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Python 可视化:Plotly 库使用基础
当使用 Plotly 进行数据可视化时,我们可以通过以下示例展示多种绘图方法,每个示例都会有详细的注释和说明。1.创建折线图import plotly.graph_objects as go# 示例1: 创建简单...【详细内容】
2024-04-01  Search: Python  点击:(8)  评论:(0)  加入收藏
Python 办公神器:教你使用 Python 批量制作 PPT
介绍本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。本文假设你已经安装了python和这两个库。本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并...【详细内容】
2024-03-26  Search: Python  点击:(16)  评论:(0)  加入收藏
Python实现工厂模式、抽象工厂,单例模式
工厂模式是一种常见的设计模式,它可以帮助我们创建对象的过程更加灵活和可扩展。在Python中,我们可以使用函数和类来实现工厂模式。一、Python中实现工厂模式工厂模式是一种常...【详细内容】
2024-03-07  Search: Python  点击:(31)  评论:(0)  加入收藏
不可不学的Python技巧:字典推导式使用全攻略
Python的字典推导式是一种优雅而强大的工具,用于创建字典(dict)。这种方法不仅代码更加简洁,而且执行效率高。无论你是Python新手还是有经验的开发者,掌握字典推导式都将是你技能...【详细内容】
2024-02-22  Search: Python  点击:(32)  评论:(0)  加入收藏
如何进行Python代码的代码重构和优化?
Python是一种高级编程语言,它具有简洁、易于理解和易于维护的特点。然而,代码重构和优化对于保持代码质量和性能至关重要。什么是代码重构?代码重构是指在不改变代码外部行为的...【详细内容】
2024-02-22  Search: Python  点击:(33)  评论:(0)  加入收藏
Python开发者必备的八个PyCharm插件
在编写代码的过程中,括号几乎无处不在,以至于有时我们会拼命辨别哪个闭合括号与哪个开头的括号相匹配。这款插件能帮助解决这个众所周知的问题。前言在PyCharm中浏览插件列表...【详细内容】
2024-01-26  Search: Python  点击:(85)  评论:(0)  加入收藏
Python的Graphlib库,再也不用手敲图结构了
Python中的graphlib库是一个功能强大且易于使用的工具。graphlib提供了许多功能,可以帮助您创建、操作和分析图形对象。本文将介绍graphlib库的主要用法,并提供一些示例代码和...【详细内容】
2024-01-26  Search: Python  点击:(86)  评论:(0)  加入收藏
大语言模型插件功能在携程的Python实践
作者简介成学,携程高级安全研发工程师,关注Python/Golang后端开发、大语言模型等领域。一、背景2023年初,科技圈最火爆的话题莫过于大语言模型了,它是一种全新的聊天机器人模型,...【详细内容】
2024-01-26  Search: Python  点击:(73)  评论:(0)  加入收藏
如何使用Python、Apache Kafka和云平台构建健壮的实时数据管道
译者 | 李睿审校 | 重楼在当今竞争激烈的市场环境中,为了生存和发展,企业必须能够实时收集、处理和响应数据。无论是检测欺诈、个性化用户体验还是监控系统,现在都需要接近即时...【详细内容】
2024-01-26  Search: Python  点击:(46)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  Search: Python  点击:(58)  评论:(0)  加入收藏
▌简易百科推荐
Python 可视化:Plotly 库使用基础
当使用 Plotly 进行数据可视化时,我们可以通过以下示例展示多种绘图方法,每个示例都会有详细的注释和说明。1.创建折线图import plotly.graph_objects as go# 示例1: 创建简单...【详细内容】
2024-04-01  Python技术    Tags:Python   点击:(8)  评论:(0)  加入收藏
Python 办公神器:教你使用 Python 批量制作 PPT
介绍本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。本文假设你已经安装了python和这两个库。本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并...【详细内容】
2024-03-26  Python技术  微信公众号  Tags:Python   点击:(16)  评论:(0)  加入收藏
Python实现工厂模式、抽象工厂,单例模式
工厂模式是一种常见的设计模式,它可以帮助我们创建对象的过程更加灵活和可扩展。在Python中,我们可以使用函数和类来实现工厂模式。一、Python中实现工厂模式工厂模式是一种常...【详细内容】
2024-03-07  Python都知道  微信公众号  Tags:Python   点击:(31)  评论:(0)  加入收藏
不可不学的Python技巧:字典推导式使用全攻略
Python的字典推导式是一种优雅而强大的工具,用于创建字典(dict)。这种方法不仅代码更加简洁,而且执行效率高。无论你是Python新手还是有经验的开发者,掌握字典推导式都将是你技能...【详细内容】
2024-02-22  子午Python  微信公众号  Tags:Python技巧   点击:(32)  评论:(0)  加入收藏
如何进行Python代码的代码重构和优化?
Python是一种高级编程语言,它具有简洁、易于理解和易于维护的特点。然而,代码重构和优化对于保持代码质量和性能至关重要。什么是代码重构?代码重构是指在不改变代码外部行为的...【详细内容】
2024-02-22  编程技术汇    Tags:Python代码   点击:(33)  评论:(0)  加入收藏
Python开发者必备的八个PyCharm插件
在编写代码的过程中,括号几乎无处不在,以至于有时我们会拼命辨别哪个闭合括号与哪个开头的括号相匹配。这款插件能帮助解决这个众所周知的问题。前言在PyCharm中浏览插件列表...【详细内容】
2024-01-26  Python学研大本营  微信公众号  Tags:PyCharm插件   点击:(85)  评论:(0)  加入收藏
Python的Graphlib库,再也不用手敲图结构了
Python中的graphlib库是一个功能强大且易于使用的工具。graphlib提供了许多功能,可以帮助您创建、操作和分析图形对象。本文将介绍graphlib库的主要用法,并提供一些示例代码和...【详细内容】
2024-01-26  科学随想录  微信公众号  Tags:Graphlib库   点击:(86)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  大雷家吃饭    Tags:Python   点击:(58)  评论:(0)  加入收藏
使用Python进行数据分析,需要哪些步骤?
Python是一门动态的、面向对象的脚本语言,同时也是一门简约,通俗易懂的编程语言。Python入门简单,代码可读性强,一段好的Python代码,阅读起来像是在读一篇外语文章。Python这种特...【详细内容】
2024-01-15  程序员不二    Tags:Python   点击:(162)  评论:(0)  加入收藏
Python语言的特点及应用场景, 同其它语言对比优势
Python语言作为一种高级编程语言,具有许多独特的特点和优势,这使得它在众多编程语言中脱颖而出。在本文中,我们将探讨Python语言的特点、应用场景以及与其他语言的对比优势。一...【详细内容】
2024-01-09    今日头条  Tags:Python语言   点击:(253)  评论:(0)  加入收藏
站内最新
站内热门
站内头条