跳到主要内容 Python 20 个常用库详解及代码示例 | 极客日志
Python AI 算法
Python 20 个常用库详解及代码示例 Python 20 个常用库覆盖数据处理、Web 开发、机器学习等领域。NumPy 和 Pandas 用于数据分析,Matplotlib 和 Seaborn 负责可视化。Flask 和 Django 支持 Web 构建。Requests 处理网络请求,Scikit-learn 和 TensorFlow 应用于机器学习。Selenium 实现自动化,Pathlib 管理文件路径。内置库如 DateTime、Re、Logging 等提升效率。文章提供核心功能解析与代码示例,帮助开发者根据场景选择合适的工具,提升开发效率。
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)
print ("数组均值:" , arr1.mean())
print ("矩阵乘法:\n" , arr2 @ np.array([[1 ], [2 ]]))
2. Pandas:数据分析利器 核心功能 :提供 Series(一维)和 DataFrame(二维表格)数据结构,支持数据清洗、筛选、分组、合并等操作。
适用场景 :表格数据处理、Excel/CSV 文件读写、数据分析报告。
import pandas as pd
data = {
"姓名" : ["张三" , "李四" , "王五" ],
"年龄" : [25 , 30 , 28 ],
"城市" : ["北京" , "上海" , "广州" ]
}
df = pd.DataFrame(data)
filtered = df[df["年龄" ] > 26 ]
print ("筛选结果:\n" , filtered)
df.to_csv("人员信息.csv" , index=False )
df_read = pd.read_csv("人员信息.csv" )
二、数据可视化
3. Matplotlib:基础绘图库 核心功能 :提供类似 MATLAB 的绘图接口,支持折线图、柱状图、散点图等几乎所有基础图表。
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" , 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)
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
app = Flask(__name__)
@app.route("/" )
def hello ():
return "Hello, Flask!"
@app.route("/api/user" )
def get_user ():
user = {"name" : "张三" , "age" : 25 , "city" : "北京" }
return jsonify(user)
if __name__ == "__main__" :
app.run(debug=True )
6. Django:全功能 Web 框架 核心功能 :'电池内置'的重量级框架,包含 ORM、Admin 后台、用户认证等完整功能。
from django.http import HttpResponse
def index (request ):
return HttpResponse("Hello, Django!" )
from django.urls import path
from . import views
urlpatterns = [
path("" , views.index, name="index" ),
]
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/" , admin.site.urls),
path("blog/" , include("blog.urls" )),
]
四、网络请求与解析
7. Requests:HTTP 请求库 核心功能 :简洁的 HTTP 请求接口,支持 GET/POST、Cookie、会话管理等。
import requests
url = "https://api.github.com"
response = requests.get(url)
print ("状态码:" , response.status_code)
print ("响应内容:\n" , response.json())
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
soup = BeautifulSoup(html, "html.parser" )
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
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))
10. TensorFlow:深度学习框架 核心功能 :谷歌开发的深度学习框架,支持神经网络构建、训练和部署。
适用场景 :图像识别、自然语言处理(NLP)、深度学习研究。
import tensorflow as tf
from tensorflow.keras import layers
model = tf.keras.Sequential([
layers.Flatten(input_shape=(28 , 28 )),
layers.Dense(128 , activation="relu" ),
layers.Dense(10 , activation="softmax" )
])
model.compile (optimizer="adam" , loss="sparse_categorical_crossentropy" , metrics=["accuracy" ])
(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
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
driver = webdriver.Chrome()
driver.get("https://www.baidu.com" )
sleep(2 )
search_box = driver.find_element(By.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_dir = Path("data" )
data_dir.mkdir(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" ))
future = now + timedelta(days=3 )
print ("3 天后:" , future.strftime("%Y-%m-%d" ))
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 )
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)
16. Logging:日志记录 核心功能 :灵活的日志系统,支持分级(DEBUG/INFO/WARNING/ERROR)、文件输出等。
import logging
logging.basicConfig(
level=logging.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} 岁" )
18. PyPDF2:PDF 处理 核心功能 :PDF 文件合并、拆分、提取文本等操作。
from PyPDF2 import PdfReader, PdfWriter
text = ""
reader = PdfReader("example.pdf" )
for page in reader.pages:
text += page.extract_text()
print ("PDF 文本内容:\n" , text[:200 ])
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)等。
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"
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 ))
t2 = threading.Thread(target=task, args=("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 个领域的库,再逐步扩展到其他领域。
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online