<返回更多

Python常用库示例脚本

2023-07-13  微信公众号  测试开发学习交流
加入收藏

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的应用远不止以上这些框架,我们可以根据具体的需求选择适合的框架和工具来进行开发。

关键词:Python      点击(8)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多Python相关>>>