跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 20 个常用库详解及代码示例

Python 20 个常用库覆盖数据处理、Web 开发、机器学习等领域。NumPy 和 Pandas 用于数据分析,Matplotlib 和 Seaborn 负责可视化。Flask 和 Django 支持 Web 构建。Requests 处理网络请求,Scikit-learn 和 TensorFlow 应用于机器学习。Selenium 实现自动化,Pathlib 管理文件路径。内置库如 DateTime、Re、Logging 等提升效率。文章提供核心功能解析与代码示例,帮助开发者根据场景选择合适的工具,提升开发效率。

人间过客发布于 2025/12/11更新于 2026/9/860 浏览

Python 之所以成为最受欢迎的编程语言之一,很大程度上得益于其丰富的第三方库。这些库覆盖了数据处理、Web 开发、人工智能、自动化等几乎所有领域,让开发者能够用更少的代码实现复杂功能。本文精选 20 个 Python 常用库,按应用场景分类,每个库都包含核心功能解析和实用代码示例,帮你快速掌握它们的使用方法。

一、数据处理与分析

1. NumPy:数值计算的基石

核心功能:提供高性能的多维数组对象和数学函数,是数据分析、科学计算的基础库(Pandas、Matplotlib 等均依赖它)。

适用场景:矩阵运算、数值模拟、数据预处理。

import numpy as np
# 创建一维数组
arr1 = np.array([1, 2, 3, 4, 5])
# 创建二维数组(矩阵)
arr2 = np.array([[1, 2], [3, 4], [5, 6]])
# 基本运算
print("数组形状:", arr2.shape) # 输出 (3, 2)
print("数组均值:", arr1.mean()) # 输出 3.0
print("矩阵乘法:\n", arr2 @ np.array([[1], [2]])) # 等价于矩阵相乘

2. Pandas:数据分析利器

核心功能:提供 Series(一维)和 DataFrame(二维表格)数据结构,支持数据清洗、筛选、分组、合并等操作。

适用场景:表格数据处理、Excel/CSV 文件读写、数据分析报告。

import pandas as pd
# 创建 DataFrame(类似 Excel 表格)
data = {
    "姓名": ["张三", "李四", "王五"],
    "年龄": [25, 30, 28],
    : [, , ]
}
df = pd.DataFrame(data)

filtered = df[df[] > ]
(, filtered)

df.to_csv(, index=)

df_read = pd.read_csv()
"城市"
"北京"
"上海"
"广州"
# 数据筛选:年龄大于 26 的行
"年龄"
26
print
"筛选结果:\n"
# 保存为 CSV 文件
"人员信息.csv"
False
# 读取 CSV 文件
"人员信息.csv"

二、数据可视化

3. Matplotlib:基础绘图库

核心功能:提供类似 MATLAB 的绘图接口,支持折线图、柱状图、散点图等几乎所有基础图表。

适用场景:数据趋势展示、实验结果可视化。

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100) # 0 到 10 之间的 100 个点
y = np.sin(x) # 正弦曲线
# 绘制折线图
plt.figure(figsize=(8, 4)) # 设置画布大小
plt.plot(x, y, label="sin(x)", color="blue", linestyle="--")
plt.xlabel("x 轴")
plt.ylabel("y 轴")
plt.title("正弦曲线")
plt.legend() # 显示图例
plt.grid(True) # 显示网格
plt.show() # 展示图像

4. Seaborn:统计可视化库

核心功能:基于 Matplotlib 封装,提供更美观的统计图表,支持热图、箱线图、小提琴图等。

适用场景:统计分析可视化(如变量相关性、数据分布)。

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 使用 Seaborn 绘制
plt.figure(figsize=(8, 4))
sns.lineplot(x=x, y=y, label="sin(x)")
plt.xlabel("x 轴")
plt.ylabel("y 轴")
plt.title("正弦曲线")
plt.legend()
plt.grid(True)
plt.show()

三、Web 开发

5. Flask:轻量级 Web 框架

核心功能:极简的 Web 框架,无固定结构,适合小型应用和 API 开发。

适用场景:快速搭建后端 API、个人博客、小型网站。

from flask import Flask, jsonify
# 创建 Flask 应用
app = Flask(__name__)
# 定义路由(访问 http://localhost:5000/时触发)
@app.route("/")
def hello():
    return "Hello, Flask!"
# 定义 API 接口(返回 JSON 数据)
@app.route("/api/user")
def get_user():
    user = {"name": "张三", "age": 25, "city": "北京"}
    return jsonify(user) # 自动转换为 JSON 格式
# 启动服务(仅在直接运行脚本时执行)
if __name__ == "__main__":
    app.run(debug=True) # debug=True 表示开发模式(自动重启)

6. Django:全功能 Web 框架

核心功能:'电池内置'的重量级框架,包含 ORM、Admin 后台、用户认证等完整功能。

适用场景:大型网站(如电商平台、内容管理系统)。

# 安装后创建项目和应用(命令行操作)
# django-admin startproject mysite
# cd mysite
# python manage.py startapp blog
# blog/views.py(定义视图)
from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, Django!")
# blog/urls.py(定义路由)
from django.urls import path
from . import views
urlpatterns = [
    path("", views.index, name="index"),
]
# mysite/urls.py(主路由)
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
    path("admin/", admin.site.urls), # Django 自带的 Admin 后台
    path("blog/", include("blog.urls")),
]

四、网络请求与解析

7. Requests:HTTP 请求库

核心功能:简洁的 HTTP 请求接口,支持 GET/POST、Cookie、会话管理等。

适用场景:爬虫、API 调用、网络数据获取。

import requests
# 发送 GET 请求(获取网页内容)
url = "https://api.github.com"
response = requests.get(url)
print("状态码:", response.status_code) # 200 表示成功
print("响应内容:\n", response.json()) # 解析 JSON 响应
# 发送 POST 请求(提交数据)
data = {"username": "test", "password": "123"}
response = requests.post("https://httpbin.org/post", data=data)
print("POST 响应:\n", response.text)

8. BeautifulSoup:HTML 解析库

核心功能:解析 HTML/XML 文档,提取标签内容、属性等信息。

适用场景:网页数据提取(爬虫)、HTML 内容处理。

from bs4 import BeautifulSoup
import requests
# 获取网页内容
url = "https://book.douban.com/top250"
response = requests.get(url)
html = response.text
# 解析 HTML
soup = BeautifulSoup(html, "html.parser")
# 使用 html.parser 解析器
# 提取书籍名称(假设书籍名在 class 为"title"的 span 标签中)
book_titles = []
for title_tag in soup.find_all("span", class_="title"):
    title = title_tag.get_text(strip=True) # 去除空格
    if title: # 过滤空值
        book_titles.append(title)
print("豆瓣 Top250 书籍前 5 本:", book_titles[:5])

五、科学计算与机器学习

9. Scikit-learn:机器学习入门库

核心功能:提供分类、回归、聚类等经典机器学习算法,以及数据预处理工具。

适用场景:机器学习入门、传统算法应用(如鸢尾花分类、房价预测)。

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
# 加载数据集(鸢尾花分类)
iris = load_iris()
X = iris.data # 特征(花萼长度、宽度等)
y = iris.target # 标签(3 种鸢尾花)
# 划分训练集和测试集(8:2)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练随机森林模型
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
# 预测并评估
y_pred = model.predict(X_test)
print("模型准确率:", accuracy_score(y_test, y_pred)) # 通常>0.9

10. TensorFlow:深度学习框架

核心功能:谷歌开发的深度学习框架,支持神经网络构建、训练和部署。

适用场景:图像识别、自然语言处理(NLP)、深度学习研究。

import tensorflow as tf
from tensorflow.keras import layers
# 构建简单的神经网络(手写数字识别)
model = tf.keras.Sequential([
    layers.Flatten(input_shape=(28, 28)), # 输入层:将 28x28 图像展平为 784 维向量
    layers.Dense(128, activation="relu"), # 隐藏层:128 个神经元,ReLU 激活
    layers.Dense(10, activation="softmax") # 输出层:10 个类别(0-9),softmax 归一化
])
# 编译模型
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
# 加载 MNIST 数据集(手写数字)
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0 # 归一化到 0-1
# 训练模型
model.fit(x_train, y_train, epochs=5)
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print("测试准确率:", test_acc)

六、自动化与工具类

11. Selenium:自动化测试工具

核心功能:模拟浏览器操作(点击、输入、跳转等),支持 Chrome、Firefox 等浏览器。

适用场景:Web 自动化测试、动态网页爬虫(JavaScript 渲染的内容)。

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 初始化 Chrome 浏览器(需下载对应版本的 chromedriver)
driver = webdriver.Chrome()
# 打开百度
driver.get("https://www.baidu.com")
sleep(2) # 等待页面加载
# 搜索"Python"
search_box = driver.find_element(By.ID, "kw") # 找到搜索框(ID 为 kw)
search_box.send_keys("Python") # 输入内容
search_box.submit() # 提交搜索
sleep(3) # 等待结果加载
# 截图保存
driver.save_screenshot("百度搜索 Python.png")
# 关闭浏览器
driver.quit()

12. Pathlib:文件路径处理

核心功能:面向对象的文件路径操作,比传统的 os.path 更直观。

适用场景:文件/目录创建、路径拼接、文件属性获取。

from pathlib import Path
# 定义路径(当前目录下的"data"文件夹)
data_dir = Path("data")
# 创建目录(如果不存在)
data_dir.mkdir(exist_ok=True) # exist_ok=True 表示目录存在时不报错
# 创建文件并写入内容
file_path = data_dir / "test.txt" # 路径拼接(跨平台兼容)
file_path.write_text("Hello, Pathlib!")
# 读取文件内容
print("文件内容:", file_path.read_text())
# 查看文件属性
print("文件大小(字节):", file_path.stat().st_size)
print("是否为文件:", file_path.is_file())

13. DateTime:日期时间处理

核心功能:处理日期、时间的创建、转换和计算(Python 内置库)。

适用场景:日志时间记录、时间差计算、日期格式转换。

from datetime import datetime, timedelta
# 获取当前时间
now = datetime.now()
print("当前时间:", now.strftime("%Y-%m-%d %H:%M:%S")) # 格式化输出
# 计算 3 天后的日期
future = now + timedelta(days=3)
print("3 天后:", future.strftime("%Y-%m-%d"))
# 解析字符串为 datetime 对象
date_str = "2023-10-01"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
print("解析后的日期:", date_obj.year, "年", date_obj.month, "月")

七、其他实用库

14. Pillow(PIL):图像处理

核心功能:图像打开、裁剪、旋转、滤镜等基本处理。

适用场景:图片批量处理、验证码识别预处理。

from PIL import Image, ImageFilter
# 打开图片
img = Image.open("test.jpg")
# 基本操作
print("图片尺寸:", img.size) # (宽度,高度)
img_rotated = img.rotate(90) # 旋转 90 度
img_blurred = img.filter(ImageFilter.BLUR) # 模糊处理
# 保存处理后的图片
img_rotated.save("test_rotated.jpg")
img_blurred.save("test_blurred.jpg")

15. Re:正则表达式

核心功能:字符串模式匹配与处理(Python 内置库)。

适用场景:邮箱/手机号验证、字符串提取、文本清洗。

import re
# 验证邮箱格式
email = "[email protected]"
pattern = r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"
if re.match(pattern, email):
    print(f"{email} 是有效的邮箱")
else:
    print(f"{email} 是无效的邮箱")
# 提取字符串中的所有数字
text = "订单号:20231001,金额:99.9 元,数量:3"
numbers = re.findall(r"\d+\.?\d*", text) # 匹配整数或小数
print("提取的数字:", numbers) # 输出 ['20231001', '99.9', '3']

16. Logging:日志记录

核心功能:灵活的日志系统,支持分级(DEBUG/INFO/WARNING/ERROR)、文件输出等。

适用场景:程序调试、运行状态跟踪、错误排查。

import logging
# 配置日志(格式、级别、输出文件)
logging.basicConfig(
    level=logging.INFO, # 只记录 INFO 及以上级别
    format="%(asctime)s - %(levelname)s - %(message)s",
    filename="app.log" # 日志保存到文件
)
# 记录不同级别的日志
logging.debug("这是调试信息(不会被记录,因为级别是 INFO)")
logging.info("程序启动成功")
logging.warning("注意:内存使用率超过 80%")
logging.error("数据库连接失败")

17. Argparse:命令行参数解析

核心功能:解析命令行参数,自动生成帮助信息。

适用场景:命令行工具开发、脚本参数配置。

import argparse
# 创建解析器
parser = argparse.ArgumentParser(description="一个简单的命令行工具")
# 添加参数
parser.add_argument("name", help="用户名") # 必选参数
parser.add_argument("-a", "--age", type=int, help="年龄(可选)") # 可选参数
# 解析参数
args = parser.parse_args()
# 使用参数
print(f"Hello, {args.name}!")
if args.age:
    print(f"你今年{args.age}岁")
# 运行方式:python script.py 张三 -a 25
# 输出:Hello, 张三!你今年 25 岁

18. PyPDF2:PDF 处理

核心功能:PDF 文件合并、拆分、提取文本等操作。

适用场景:PDF 批量处理、文档内容提取。

from PyPDF2 import PdfReader, PdfWriter
# 提取 PDF 文本
text = ""
reader = PdfReader("example.pdf")
for page in reader.pages:
    text += page.extract_text()
print("PDF 文本内容:\n", text[:200]) # 打印前 200 字符
# 合并两个 PDF
writer = PdfWriter()
for pdf in ["file1.pdf", "file2.pdf"]:
    reader = PdfReader(pdf)
    for page in reader.pages:
        writer.add_page(page)
with open("merged.pdf", "wb") as f:
    writer.write(f)

19. Pytest:单元测试框架

核心功能:简单易用的测试框架,支持断言、测试用例参数化、夹具(fixture)等。

适用场景:代码单元测试、自动化测试。

# 安装:pip install pytest
# 测试文件命名:test_*.py 或 *_test.py
# test_math.py
def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5 # 断言成功
    assert add(-1, 1) == 0 # 断言成功

def test_add_str():
    assert add("Hello", " World") == "Hello World" # 测试字符串拼接
# 运行测试:pytest test_math.py -v
# 输出测试结果(通过/失败)

20. Threading:多线程编程

核心功能:实现多线程并发,提高程序执行效率(Python 内置库)。

适用场景:IO 密集型任务(如网络请求、文件读写)。

import threading
import time

def task(name, delay):
    """线程任务:每隔 delay 秒打印一次"""
    for i in range(3):
        time.sleep(delay)
        print(f"任务{name}:第{i+1}次执行(线程 ID:{threading.current_thread().ident})")

# 创建线程
t1 = threading.Thread(target=task, args=("A", 1)) # 任务 A,间隔 1 秒
t2 = threading.Thread(target=task, args=("B", 2)) # 任务 B,间隔 2 秒
# 启动线程
t1.start()
t2.start()
# 等待线程结束
t1.join()
t2.join()
print("所有任务执行完毕")

总结:按场景选择合适的库

场景推荐库
数据处理NumPy、Pandas
数据可视化Matplotlib、Seaborn
Web 开发Flask(轻量)、Django(全功能)
网络操作Requests(请求)、BeautifulSoup(解析)
机器学习Scikit-learn(传统)、TensorFlow(深度学习)
自动化Selenium(浏览器)、Threading(多线程)
工具类Pathlib(路径)、Logging(日志)、Re(正则)

这些库是 Python 生态的基石,掌握它们能极大提升开发效率。实际项目中,往往需要多个库配合使用(例如用 Requests 爬取数据,Pandas 清洗,Matplotlib 可视化)。建议根据具体需求深入学习 1-2 个领域的库,再逐步扩展到其他领域。

目录

  1. 一、数据处理与分析
  2. 1. NumPy:数值计算的基石
  3. 创建一维数组
  4. 创建二维数组(矩阵)
  5. 基本运算
  6. 2. Pandas:数据分析利器
  7. 创建 DataFrame(类似 Excel 表格)
  8. 数据筛选:年龄大于 26 的行
  9. 保存为 CSV 文件
  10. 读取 CSV 文件
  11. 二、数据可视化
  12. 3. Matplotlib:基础绘图库
  13. 生成数据
  14. 绘制折线图
  15. 4. Seaborn:统计可视化库
  16. 生成数据
  17. 使用 Seaborn 绘制
  18. 三、Web 开发
  19. 5. Flask:轻量级 Web 框架
  20. 创建 Flask 应用
  21. 定义路由(访问 http://localhost:5000/时触发)
  22. 定义 API 接口(返回 JSON 数据)
  23. 启动服务(仅在直接运行脚本时执行)
  24. 6. Django:全功能 Web 框架
  25. 安装后创建项目和应用(命令行操作)
  26. django-admin startproject mysite
  27. cd mysite
  28. python manage.py startapp blog
  29. blog/views.py(定义视图)
  30. blog/urls.py(定义路由)
  31. mysite/urls.py(主路由)
  32. 四、网络请求与解析
  33. 7. Requests:HTTP 请求库
  34. 发送 GET 请求(获取网页内容)
  35. 发送 POST 请求(提交数据)
  36. 8. BeautifulSoup:HTML 解析库
  37. 获取网页内容
  38. 解析 HTML
  39. 使用 html.parser 解析器
  40. 提取书籍名称(假设书籍名在 class 为"title"的 span 标签中)
  41. 五、科学计算与机器学习
  42. 9. Scikit-learn:机器学习入门库
  43. 加载数据集(鸢尾花分类)
  44. 划分训练集和测试集(8:2)
  45. 训练随机森林模型
  46. 预测并评估
  47. 10. TensorFlow:深度学习框架
  48. 构建简单的神经网络(手写数字识别)
  49. 编译模型
  50. 加载 MNIST 数据集(手写数字)
  51. 训练模型
  52. 评估模型
  53. 六、自动化与工具类
  54. 11. Selenium:自动化测试工具
  55. 初始化 Chrome 浏览器(需下载对应版本的 chromedriver)
  56. 打开百度
  57. 搜索"Python"
  58. 截图保存
  59. 关闭浏览器
  60. 12. Pathlib:文件路径处理
  61. 定义路径(当前目录下的"data"文件夹)
  62. 创建目录(如果不存在)
  63. 创建文件并写入内容
  64. 读取文件内容
  65. 查看文件属性
  66. 13. DateTime:日期时间处理
  67. 获取当前时间
  68. 计算 3 天后的日期
  69. 解析字符串为 datetime 对象
  70. 七、其他实用库
  71. 14. Pillow(PIL):图像处理
  72. 打开图片
  73. 基本操作
  74. 保存处理后的图片
  75. 15. Re:正则表达式
  76. 验证邮箱格式
  77. 提取字符串中的所有数字
  78. 16. Logging:日志记录
  79. 配置日志(格式、级别、输出文件)
  80. 记录不同级别的日志
  81. 17. Argparse:命令行参数解析
  82. 创建解析器
  83. 添加参数
  84. 解析参数
  85. 使用参数
  86. 运行方式:python script.py 张三 -a 25
  87. 输出:Hello, 张三!你今年 25 岁
  88. 18. PyPDF2:PDF 处理
  89. 提取 PDF 文本
  90. 合并两个 PDF
  91. 19. Pytest:单元测试框架
  92. 安装:pip install pytest
  93. 测试文件命名:test.py 或 test.py
  94. test_math.py
  95. 运行测试:pytest test_math.py -v
  96. 输出测试结果(通过/失败)
  97. 20. Threading:多线程编程
  98. 创建线程
  99. 启动线程
  100. 等待线程结束
  101. 总结:按场景选择合适的库

更多推荐文章

查看全部
  • WebMCP:Chrome 新 API 特性与 Agentic Web 前瞻
  • OpenClaw 集成飞书机器人实战指南
  • 教育类 APP 防越狱攻击:Qwen3Guard-Gen-WEB 实战指南
  • VR-Reversal:利用 MPV 将 3D 视频转换为 2D 格式的工具指南
  • AI 辅助开发实战:用 DeepSeek 构建贪吃蛇游戏
  • 算法实战:位运算解决两数之和、唯一数字与缺失数字
  • 基于动态反演与 ESO 的无人机鲁棒反馈线性化自适应姿态控制
  • Z-Image-Turbo 集成至 Photoshop 插件的 AI 绘画工作流
  • 网络安全 SRC 漏洞挖掘实战指南与学习路径
  • Python 实现智能 PDF 文档助手 AI 小工具
  • 开源大模型文件后缀含义与量化选型指南
  • LatentSync 1.5 开源:字节 AI 数字人框架支持一键部署与中文优化
  • Java 工程项目管理系统功能模块与技术架构说明
  • .net Core Web 保姆级教学 逐文件讲解 从0搭建一个 ASP.NET Core Razor Pages
  • Neo4j 插件 APOC 安装与配置实战指南
  • QClaw 接入微信:AI 从聊天工具向执行助手的进化
  • StableDiffusion-webui 本地部署与使用指南
  • Java 时间类详解:JDK8 全新时间 API 教程
  • Java 基础语法
  • 大模型关键技术与应用

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online