Python/ target=_blank class=infotextkey>Python是一門功能強大的語言,擁有大量的庫和工具,可以簡化日常工作中的許多任務。本文將介紹Python中的常用庫,并提供一個使用這些庫的實戰項目,以幫助您更好地理解和掌握這些庫。 NumPy是Python中的一個數值計算庫,用于高效地處理大型數組和矩陣。它也提供了許多數學函數,可用于線性代數、傅里葉變換等任意復雜的數學運算。 實戰項目: 在本項目中,我們將使用NumPy庫來計算由兩個互相垂直的向量組成的平面上的所有向量。我們將使用NumPy庫的arange()和reshape()函數來創建兩個數組,并使用內積(dot)函數和叉積(cross)函數來計算所有的向量。 代碼: Pandas是Python中的一個數據分析庫,用于處理和操作數據集。它可以輕松地讀取、過濾、切片、匯總和可視化數據。Pandas最常見的數據結構是DataFrame,可以把它看做是一個二維表格。 實戰項目: 在本項目中,我們將使用Pandas庫來處理海盜寶藏數據,然后根據一些統計信息來對數據進行分析。 代碼: Matplotlib是Python中的一個數據可視化庫,用于創建各種圖表和可視化。它提供了許多選項和特性來自定義圖表的外觀和感覺。 實戰項目: 在本項目中,我們將使用Matplotlib庫來創建一張柱狀圖,用于表示不同城市的溫度。 代碼: Scikit-learn是Python中的一個機器學習庫,提供了許多算法和工具,可用于創建分類、聚類和回歸模型等。它也提供了許多功能,用于特征提取、模型選擇和調整模型超參數等。 實戰項目: 在本項目中,我們將使用Scikit-learn庫來創建一個樸素貝葉斯分類器,以識別一份垃圾郵件。 代碼: Requests是Python中的一個HTTP庫,用于在Python中處理HTTP請求。它可以在Python中執行各種HTTP方法,如GET、POST、PUT、DELETE等,還可以使用SSL和代理。 實戰項目: 在本項目中,我們將使用Requests庫來獲取并處理一個網絡頁面的內容。 代碼: Beautiful Soup是Python中的一個HTML和XML解析庫,用于從HTML或XML文件中提取數據。它可以幫助Python程序員處理Web數據,包括解析、搜索和遍歷HTML或XML文件中的元素。 實戰項目: 在本項目中,我們將使用Requests庫獲取網絡頁面,然后使用Beautiful Soup庫來解析其中的HTML。 代碼: Selenium是Python中的一個自動化瀏覽器測試和網絡爬蟲庫,用于模擬用戶操作和對用戶界面進行測試。 實戰項目: 在本項目中,我們將使用Selenium庫來自動登錄Twitter賬號,并發布一條推文。 代碼: Pygame是Python中的一個游戲開發和多媒體庫,用于創建各種類型的游戲和交互式多媒體應用程序。 實戰項目: 在本項目中,我們將使用Pygame庫來創建一個基于鍵盤的反應生存游戲,這個游戲將會計算用戶的得分和移動玩家,可通過箭頭鍵進行操作。 代碼: Flask是Python中的一個Web框架,用于構建Web應用程序。Flask是一個輕量級框架,但卻非常強大,可以用于處理各種Web開發任務。 實戰項目: 在本項目中,我們將使用Flask框架來創建一個簡單的Web應用程序,用戶可以通過它提交一個表單,并將表單的內容顯示在Web頁面上。 代碼: PyTorch是一個基于Python的科學計算包,用于構建深度學習神經網絡。它具有靈活性和速度,可以用于對各種類型的數據進行高效的計算。 實戰項目: 在本項目中,我們將使用PyTorch庫來創建和訓練一個深度學習神經網絡,用于識別圖像中的數字。 代碼: 以上是幾個常用的Python框架以及它們在實戰項目中的應用示例,希望能對你有所幫助。當然,Python的應用遠不止以上這些框架,我們可以根據具體的需求選擇適合的框架和工具來進行開發。1. NumPy
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
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
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
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
# 訓練數據,垃圾郵件已被標記為1,常規郵件已被標記為0
train_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
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
import requests
from bs4 import BeautifulSoup
# 獲取網絡頁面,并用Beautiful Soup庫解析HTML
response = 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
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from 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
import pygame
import random
# 初始化Pygame
pygame.init()
# 定義
屏幕的大小
width = 800
height = 600
# 設置屏幕大小并創建窗口
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Keyboard Reaction Game")
# 設置游戲時間長度和倒計時時鐘
game_time = 30
timer = pygame.time.Clock()
# 設置玩家和食物的大小
player_size = 50
food_size = 25
# 設置顏色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
# 初始化玩家和食物的位置
player_x = width * 0.5 - player_size * 0.5
player_y = height * 0.5 - player_size * 0.5
food_x = random.randint(food_size, width - food_size)
food_y = random.randint(food_size, height - food_size)
# 初始化得分和游戲是否結束的標記
score = 0
game_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
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
import torch
import torch.nn as nn
import torchvision.datasets as dsets
import 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 = 784
hidden_size = 500
num_classes = 10
num_epochs = 5
batch_size = 100
learning_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常用庫示例腳本
網友整理
注冊時間:
網站:5 個 小程序:0 個 文章:12 篇
-
51998
網站
- 12
小程序
-
1030137
文章
-
747
會員
熱門網站
- 各百科-專業百科問答知識名網站 m.geelcn.com
- 免費軟件,綠色軟件園,手機軟件下載,熱門游戲下載中心-中當網 m.deelcn.com
- 魔扣科技 www.ylptlb.cn
- 體育新聞_國際體育資訊_全球體育賽事-中名網 www.feelcn.com/tiyu/tiyuxinwen/
- 食品安全_健康飲食_舌尖上的安全-中名網 www.feelcn.com/shenghuo/shipinanquan/
- 中合網 www.heelcn.com
- 中當網 www.deelcn.com
- 魔扣網站維護代運營 www.ylptlb.cn/tg
- 中合網-健康養生知識科普名站 m.heelcn.com
- 各百科 www.geelcn.com
最新入駐小程序
熱門文章
- 民以食為天 離線人臉識別助力打造智慧食堂 08-20
- 青桔單車發布3款新車 已進入150個城市 08-13
- 民間大神用Win7毛玻璃UI風格改造Win10:情懷滿滿 08-06
- 網站標題是否可以修改?怎么改不影響網站權重? 11-19
- 關于網站標題和正文的匹配度分析 09-29
- 從滾石、華納到環球,三個關鍵詞讀懂網易云為何成版權方最愛 08-12
- 天眼被注冊為煙草商標,中國控煙協會要求嚴查 08-13
- 深圳實現5G獨立組網全覆蓋 已累計建設5G基站超4.6萬個 08-17
- 滴滴App內嵌買車服務 已在十余城上線 08-06
- 關鍵詞的密度要結合頁面版式來調整 11-28