Python拥有丰富的第三方库生态系统,覆盖数据处理、Web开发、自动化、机器学习等多个领域。以下按应用场景分类,分享一些实用且常用的Python库,并附带简单示例:
一、数据处理与分析
1. Pandas - 数据处理神器
用途:高效处理结构化数据(表格、CSV、Excel等),支持筛选、分组、合并等操作。
特点:基于NumPy,提供DataFrame数据结构,语法简洁。
import pandas as pd
# 读取CSV文件
df = pd.read_csv("data.csv")
# 查看前5行
print(df.head())
# 筛选年龄>30的数据
filtered = df[df["age"] > 30]
# 按性别分组计算平均工资
grouped = df.groupby("gender")["salary"].mean()
print(grouped)
2. NumPy - 数值计算基础
用途:处理多维数组和矩阵运算,提供高效的数学函数。
特点:底层用C实现,运算速度远快于Python原生列表。
import numpy as np
# 创建数组
arr = np.array([1, 2, 3, 4, 5])
# 数组运算(批量操作,无需循环)
print(arr * 2) # [ 2 4 6 8 10]
# 矩阵乘法
mat1 = np.array([[1, 2], [3, 4]])
mat2 = np.array([[5, 6], [7, 8]])
print(mat1 @ mat2) # 等价于np.matmul(mat1, mat2)
二、数据可视化
3. Matplotlib - 基础可视化库
用途:绘制折线图、柱状图、散点图等基础图表,高度可定制。
特点:Python可视化的"基石",其他很多库基于它封装。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制折线图
plt.figure(figsize=(8, 4))
plt.plot(x, y, label="sin(x)", color="blue")
plt.title("正弦曲线")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.show()
4. Seaborn - 统计可视化
用途:基于Matplotlib,专注于统计图表(如热力图、箱线图、小提琴图)。
特点:默认样式更美观,适合数据分析中的可视化。
import seaborn as sns
import pandas as pd
# 使用内置数据集
tips = sns.load_dataset("tips")
# 绘制箱线图(查看不同天数的消费分布)
sns.boxplot(x="day", y="total_bill", data=tips)
plt.title("不同天数的消费分布")
plt.show()
5. Plotly - 交互式可视化
用途:生成交互式图表(支持缩放、悬停查看数据),适合网页展示。
特点:无需后端,图表可导出为HTML。
import plotly.express as px
# 使用内置数据集
df = px.data.iris()
# 绘制交互式散点图
fig = px.scatter(df, x="sepal_width", y="sepal_length",
color="species", size="petal_length",
title="鸢尾花数据集散点图")
fig.show() # 在浏览器或Jupyter中显示
三、Web开发
6. Flask - 轻量级Web框架
用途:快速开发小型Web应用或API,灵活度高。
特点:核心简单,可通过扩展增加功能(如数据库、认证)。
from flask import Flask, jsonify
app = Flask(__name__)
# 定义路由
@app.route("/api/hello")
def hello():
return jsonify({"message": "Hello, Flask!"})
if __name__ == "__main__":
app.run(debug=True) # 启动服务器,访问 http://localhost:5000/api/hello
7. Django - 全功能Web框架
用途:开发大型Web应用(如博客、电商平台),内置ORM、admin后台等。
特点:"电池包含"哲学,开箱即用的功能丰富。
# 示例:Django模型定义(models.py)
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
publish_date = models.DateTimeField(auto_now_add=True)
# 自动生成admin后台管理界面(admin.py)
from django.contrib import admin
from .models import Article
admin.site.register(Article) # 注册模型后,可在/admin页面管理数据
8. FastAPI - 高性能API框架
用途:构建高性能、自动生成文档的API(支持异步)。
特点:基于现代Python类型提示,自动生成Swagger文档。
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
# 定义数据模型
class Item(BaseModel):
name: str
price: float
# 接收POST请求
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
# 启动命令:uvicorn main:app --reload
# 访问 http://localhost:8000/docs 查看自动生成的API文档
四、自动化与爬虫
9. Requests - HTTP请求库
用途:发送HTTP请求(GET/POST等),爬取网页或调用API。
特点:语法简洁,比内置urllib更易用。
import requests
# 发送GET请求
response = requests.get("https://api.github.com")
print(response.status_code) # 200(成功)
print(response.json()) # 解析JSON响应
10. BeautifulSoup - HTML解析
用途:解析HTML/XML文档,提取数据(如网页中的标题、链接)。
特点:支持多种解析器,语法直观。
from bs4 import BeautifulSoup
import requests
# 爬取网页并解析
url = "https://www.example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# 提取标题
print("标题:", soup.title.string)
# 提取所有链接
links = soup.find_all("a")
for link in links:
print("链接:", link.get("href"))
11. Selenium - 浏览器自动化
用途:模拟浏览器操作(点击、输入、滚动),处理动态加载页面(如JavaScript渲染的内容)。
特点:支持Chrome、Firefox等浏览器,适合复杂交互场景。
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动Chrome浏览器(需下载对应版本的chromedriver)
driver = webdriver.Chrome()
# 打开百度并搜索
driver.get("https://www.baidu.com")
driver.find_element(By.ID, "kw").send_keys("Python") # 输入搜索词
driver.find_element(By.ID, "su").click() # 点击搜索按钮
# 等待3秒后关闭浏览器
import time
time.sleep(3)
driver.quit()
五、机器学习与AI
12. Scikit-learn - 机器学习入门
用途:提供分类、回归、聚类等经典机器学习算法,API统一。
特点:文档完善,适合初学者。
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 加载数据集
data = load_iris()
X, y = data.data, data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 训练模型
model = RandomForestClassifier()
model.fit(X_train, y_train)
# 预测并评估
y_pred = model.predict(X_test)
print("准确率:", accuracy_score(y_test, y_pred))
13. TensorFlow/PyTorch - 深度学习框架
用途:构建神经网络(如CNN、RNN),用于图像识别、自然语言处理等。
特点:TensorFlow适合生产部署,PyTorch更灵活,适合研究。
# PyTorch示例:简单神经网络
import torch
import torch.nn as nn
# 定义模型
class SimpleNN(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(10, 5) # 输入10维,输出5维
self.fc2 = nn.Linear(5, 2) # 输出2维(二分类)
def forward(self, x):
x = torch.relu(self.fc1(x))
return self.fc2(x)
# 初始化模型和损失函数
model = SimpleNN()
criterion = nn.CrossEntropyLoss()
# 模拟数据并训练
x = torch.randn(32, 10) # 32个样本,每个10维
y = torch.randint(0, 2, (32,)) # 32个标签(0或1)
outputs = model(x)
loss = criterion(outputs, y)
loss.backward() # 反向传播
六、实用工具库
14. tqdm - 进度条显示
用途:为循环添加进度条,直观显示任务进度。
特点:用法简单,支持嵌套循环。
from tqdm import tqdm
import time
# 为循环添加进度条
for i in tqdm(range(100), desc="处理中"):
time.sleep(0.05) # 模拟耗时操作
15. python-dotenv - 环境变量管理
用途:从.env文件加载环境变量(如API密钥、数据库密码),避免硬编码。
特点:保护敏感信息,方便开发环境配置。
# 1. 安装:pip install python-dotenv
# 2. 创建.env文件:API_KEY=123456
from dotenv import load_dotenv
import os
load_dotenv() # 加载.env文件
api_key = os.getenv("API_KEY") # 获取环境变量
print("API密钥:", api_key) # 输出:123456
16. Pillow - 图像处理
用途:处理图像(裁剪、缩放、旋转、添加文字等)。
特点:Python图像处理的标准库。
from PIL import Image, ImageDraw, ImageFont
# 打开图片并缩放
img = Image.open("input.jpg")
img = img.resize((400, 300)) # 缩放到400x300
# 添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("simhei.ttf", 20) # 需指定中文字体
draw.text((10, 10), "Hello, 图像!", font=font, fill=(255, 0, 0))
# 保存结果
img.save("output.jpg")
总结
Python库的选择应根据具体场景:
- 数据处理优先用Pandas+NumPy;
- 可视化根据需求选Matplotlib(基础)、Seaborn(统计)、Plotly(交互);
- Web开发:小型用Flask,大型用Django,API用FastAPI;
- 爬虫:简单页面用Requests+BeautifulSoup,动态页面用Selenium;
- 机器学习:入门用Scikit-learn,深度学习用TensorFlow/PyTorch。
使用时建议先查看官方文档,大多数库都有详细教程和示例。通过组合这些库,可以快速实现复杂功能,提高开发效率。
711

被折叠的 条评论
为什么被折叠?



