常用数据处理库分类:
- **核心数据处理库**:
-
NumPy: 数值计算基础库,提供高性能多维数组对象
-
Pandas: 数据分析和操作库,提供DataFrame等数据结构
-
SciPy: 科学计算库,建立在NumPy之上
- **数据可视化库**:
-
Matplotlib: 基础绘图库
-
Seaborn: 基于Matplotlib的统计绘图库
-
Plotly: 交互式可视化库
-
Bokeh: 交互式可视化库
-
Altair: 声明式统计可视化库
- **机器学习库**:
-
Scikit-learn: 传统机器学习算法库
-
TensorFlow: 谷歌的深度学习框架
-
PyTorch: Facebook的深度学习框架
-
Keras: 高级神经网络API(现在是TensorFlow的一部分)
- **大数据处理库**:
-
Dask: 并行计算库,扩展Pandas和NumPy
-
PySpark: Apache Spark的Python API
-
Vaex: 处理大型表格数据集的库
- **数据库交互库**:
-
SQLAlchemy: ORM和SQL工具包
-
psycopg2: PostgreSQL数据库适配器
-
mysql-connector-python: MySQL数据库连接器
-
sqlite3: Python标准库中的SQLite接口
- **Web数据抓取库**:
-
Requests: HTTP请求库
-
BeautifulSoup: HTML/XML解析库
-
Scrapy: 网络爬虫框架
-
Selenium: 浏览器自动化工具
- **数据格式处理库**:
-
json: JSON处理(标准库)
-
xml: XML处理(标准库)
-
lxml: 高效XML处理库
-
PyYAML: YAML解析库
-
msgpack: 高效二进制序列化库
- **时间序列分析库**:
-
statsmodels: 统计建模和假设检验
-
Prophet: Facebook的时间序列预测工具
-
tsfresh: 时间序列特征提取
- **自然语言处理库**:
-
NLTK: 自然语言处理工具包
-
spaCy: 工业级NLP库
-
Gensim: 主题建模和文档相似度
-
Transformers: Hugging Face的预训练模型库
- **其他实用数据工具**:
-
OpenPyXL: Excel文件处理
-
csv: CSV文件处理(标准库)
-
PyArrow: Apache Arrow的Python绑定,用于内存中数据交换
-
joblib: 用于流水线持久化的实用工具
🧮 一、核心数据处理三剑客(必学!)
这些是所有数据工作的基石,无论你走哪个方向都必须掌握。
1. NumPy - 数值计算的基石
pip install numpy
-
作用 :提供高性能多维数组对象(
ndarray)和数学函数 -
为什么重要:所有数据科学库的底层基础,90%的数据操作最终都会转为NumPy操作
-
关键特性 :
- 向量化操作(避免慢速Python循环)
- 广播机制(不同形状数组的运算)
- 线性代数、傅里叶变换等数学功能
-
典型用例 :
import numpy as np
创建数组
arr = np.array([1, 2, 3])
向量化计算(比循环快10-100倍)
squared = arr ** 2 # [1, 4, 9]
矩阵运算
matrix = np.random.rand(3, 3)
eigenvalues = np.linalg.eigvals(matrix)
2. Pandas - 数据分析的瑞士军刀
pip install pandas
-
作用 :提供
Series(一维带标签数据)和DataFrame(二维表格数据)数据结构 -
为什么重要 :处理结构化数据(CSV、Excel、数据库)的事实标准
-
关键特性 :
- 数据清洗(处理缺失值、重复值)
- 数据筛选、分组、聚合
- 时间序列处理
- 合并/连接多个数据集
-
典型用例 :
import pandas as pd
读取CSV
df = pd.read_csv('data.csv')
数据清洗
df.dropna(inplace=True) # 删除缺失值
分组聚合
sales_by_region = df.groupby('region')['sales'].sum()
时间序列处理
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
monthly_sales = df['sales'].resample('M').sum()
3. SciPy - 科学计算扩展
pip install scipy
-
作用:基于NumPy的高级科学计算功能
-
为什么重要:提供专业级的数学、科学和工程计算功能
-
关键模块 :
scipy.stats: 统计分布与检验scipy.optimize: 优化算法scipy.integrate: 积分scipy.linalg: 高级线性代数
-
典型用例 :
from scipy import stats, optimize
假设检验
t_stat, p_value = stats.ttest_ind(group1, group2)
拟合函数
def model(x, a, b):
return a * np.exp(-b * x)
params, _ = optimize.curve_fit(model, x_data, y_data)
✅ 学习建议:先精通Pandas(80%的数据工作只需它),再根据需要学习NumPy底层和SciPy高级功能。
📊 二、数据可视化库(让数据说话)
1. Matplotlib - 基础绘图库
pip install matplotlib
-
作用:创建高质量2D/3D图表
-
特点:高度可定制,但语法相对底层
-
典型用例 :
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'ro-', label='Data') # 红色圆点线
plt.title('My First Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.legend()
plt.grid(True)
plt.savefig('plot.png', dpi=300) # 高质量输出
2. Seaborn - 统计可视化库
pip install seaborn
-
作用:基于Matplotlib的高级接口,专为统计分析设计
-
特点:默认美观,一行代码创建复杂统计图
-
典型用例 :
import seaborn as sns
自动计算并绘制分布
sns.histplot(df['age'], kde=True)
分面网格图
g = sns.FacetGrid(df, col="category")
g.map(plt.scatter, "x", "y")
热力图(相关性分析)
corr = df.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
3. Plotly - 交互式可视化
pip install plotly
-
作用:创建交互式、可缩放、可悬停的图表
-
特点:适合Web应用和报告,支持3D可视化
-
典型用例 :
import plotly.express as px
交互式散点图
fig = px.scatter(df, x='gdp', y='life_expectancy',
size='population', color='continent',
hover_name='country', log_x=True)
fig.show() # 在浏览器中打开交互式图表
3D曲面图
fig = px.scatter_3d(df, x='x', y='y', z='z', color='value')
✅ 学习路径建议:先掌握Matplotlib基础 → 用Seaborn提高效率 → 用Plotly做交互式报告
🤖 三、机器学习与AI库
1. Scikit-learn - 传统机器学习
pip install scikit-learn
-
作用:提供统一接口的分类、回归、聚类等算法
-
特点:文档完善,适合入门和快速原型开发
-
典型流程 :
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
数据准备
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
模型训练
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
评估
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))
2. TensorFlow / Keras - 深度学习
pip install tensorflow
-
作用:构建和训练深度神经网络
-
特点:Keras作为高级API已集成到TF中,简化使用
-
典型用例 :
import tensorflow as tf
from tensorflow import keras
构建模型
model = keras.Sequential([
keras.layers.Dense(64, activation='relu', input_shape=(784,)),
keras.layers.Dropout(0.2),
keras.layers.Dense(10, activation='softmax')
])
编译和训练
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(X_train, y_train, epochs=5, validation_data=(X_test, y_test))
3. PyTorch - 灵活的深度学习
pip install torch torchvision
-
作用:动态计算图的深度学习框架
-
特点:研究领域更受欢迎,调试更直观
-
典型用例 :
import torch
import torch.nn as nn
class Net(nn.Module):
def init(self):
super().init()
self.fc1 = nn.Linear(784, 64)
self.fc2 = nn.Linear(64, 10)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
model = Net()
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
4. XGBoost / LightGBM - 梯度提升树
pip install xgboost lightgbm
-
作用:高效实现梯度提升决策树(GBDT)
-
特点:表格数据竞赛的王者,性能通常优于传统ML模型
-
典型用例 :
import xgboost as xgb
DMatrix是XGBoost的专用数据格式
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test)
params = {'objective': 'reg:squarederror', 'max_depth': 5}
model = xgb.train(params, dtrain, num_boost_round=100)
preds = model.predict(dtest)
✅ 学习建议:先掌握Scikit-learn → 根据需要选择深度学习框架(TF适合生产部署,PyTorch适合研究)
🌐 四、数据获取与Web相关库
1. Requests - HTTP请求
pip install requests
-
作用:发送HTTP请求获取Web数据
-
特点 :比标准库
urllib简洁得多 -
典型用例 :
import requests
GET请求
response = requests.get('https://api.example.com/data',
params={'key': 'value'},
headers={'User-Agent': 'MyApp/1.0'})
data = response.json() # 自动解析JSON
POST请求(带认证)
response = requests.post('https://api.example.com/login',
data={'username': 'user', 'password': 'pass'},
auth=('user', 'pass'))
2. BeautifulSoup - HTML/XML解析
pip install beautifulsoup4
-
作用:从HTML/XML中提取数据
-
特点:简单易用,适合小规模爬虫
-
典型用例 :
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, 'html.parser')
提取所有链接
links = [a['href'] for a in soup.find_all('a', href=True)]
提取特定元素
title = soup.find('h1', class_='title').text
3. Scrapy - 爬虫框架
pip install scrapy
-
作用:构建大规模、可维护的爬虫项目
-
特点:异步请求,自动处理URL队列、中间件等
-
典型结构 :
创建项目: scrapy startproject myproject
定义Item
import scrapy
class ProductItem(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
编写Spider
class ProductSpider(scrapy.Spider):
name = 'products'
start_urls = ['https://example.com/products']
def parse(self, response):
for product in response.css('div.product'):
item = ProductItem()
item['name'] = product.css('h2::text').get()
item['price'] = product.css('span.price::text').get()
yield item
4. SQLAlchemy - 数据库ORM
pip install sqlalchemy
-
作用:Python的SQL工具包和ORM
-
特点 :支持多种数据库,提供两种使用模式:
- Core(SQL表达式语言)
- ORM(对象关系映射)
-
典型用例 :
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
tablename = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
连接数据库
engine = create_engine('sqlite:///./test.db')
Base.metadata.create_all(engine)
会话操作
Session = sessionmaker(bind=engine)
session = Session()
new_user = User(name='John', age=30)
session.add(new_user)
session.commit()
⚡ 五、高性能与大数据处理库
1. Dask - 并行计算
pip install dask
-
作用:并行化Pandas和NumPy操作,处理超出内存的数据
-
特点:类似Pandas的API,但支持分布式计算
-
典型用例 :
import dask.dataframe as dd
读取大型CSV(自动分块)
df = dd.read_csv('large_file_*.csv')
类似Pandas的操作(延迟计算)
result = df.groupby('category').value.mean().compute() # 触发计算
2. Vaex - 超大型数据集
pip install vaex
-
作用:处理无法放入内存的超大型表格数据集
-
特点:内存映射、惰性计算、性能极高
-
典型用例 :
import vaex
打开100GB+的HDF5文件
df = vaex.open('large_dataset.hdf5')
即时计算(无需加载全部数据)
histogram = df.viz.histogram(df.x, df.y, shape=(512, 512))
3. Modin - Pandas加速器
pip install modin[all]
-
作用:只需修改一行代码,加速Pandas操作
-
特点:完全兼容Pandas API,自动并行化
-
典型用例 :
只需替换import语句
import pandas as pd
import modin.pandas as pd
后续所有Pandas代码自动加速
df = pd.read_csv('big_data.csv')
df.groupby('category').value.mean()
🗂️ 六、数据格式处理库
| 库 | 用途 | 安装命令 | 简单示例 |
|---|---|---|---|
| JSON | JSON数据处理 | (标准库) | import json; data = json.loads(json_str) |
| PyYAML | YAML配置文件 | pip install pyyaml |
import yaml; config = yaml.safe_load(open('config.yaml')) |
| openpyxl | Excel文件处理 | pip install openpyxl |
from openpyxl import load_workbook; wb = load_workbook('data.xlsx') |
| python-docx | Word文档处理 | pip install python-docx |
from docx import Document; doc = Document('report.docx') |
| pdfplumber | PDF内容提取 | pip install pdfplumber |
import pdfplumber; with pdfplumber.open("file.pdf") as pdf: page = pdf.pages[0] |
| msgpack | 高效二进制序列化 | pip install msgpack |
import msgpack; packed = msgpack.packb({"key": "value"}) |
| Apache Arrow | 内存数据交换 | pip install pyarrow |
import pyarrow as pa; table = pa.Table.from_pandas(df) |
🧭 七、按应用场景推荐学习路径
📈 场景1:数据分析/商业智能
- 核心必学:Pandas → Matplotlib → Seaborn
- 进阶:Plotly (Dash) → SQLAlchemy → Dask
- 工具链:Jupyter Notebook/Lab + VS Code
🤖 场景2:机器学习工程师
- 核心必学:Scikit-learn → Pandas → Matplotlib
- 进阶:XGBoost/LightGBM → TensorFlow/PyTorch
- 工具链:Jupyter + MLflow (模型跟踪) + Docker
🌐 场景3:Web数据工程师
- 核心必学:Requests → BeautifulSoup → Pandas
- 进阶:Scrapy → SQLAlchemy → Airflow (工作流)
- 工具链:VS Code + Postman + Docker
📊 场景4:数据可视化专家
- 核心必学:Matplotlib → Seaborn → Plotly
- 进阶:Bokeh → Altair → D3.js (JavaScript)
- 工具链:Jupyter + Tableau/PowerBI (商业智能)
💡 终极建议:如何高效学习这些库
- 不要试图一次性学完所有库:先掌握Pandas和基础可视化,再根据项目需求学习其他
- 边学边做项目:找一个真实数据集(如Kaggle),用这些库完成端到端分析
- 善用官方文档:这些库的文档通常非常完善,学会快速查找
- 阅读优质代码:在GitHub上查看这些库的示例项目
- 关注性能:当数据量增大时,学习如何优化(如向量化操作、Dask等)
🌟 关键提醒 :掌握这些库的核心思想比记住所有函数更重要。例如:
- Pandas的核心是向量化操作 和分组-应用-组合模式
- Scikit-learn的核心是统一的estimator API(fit/predict/transform)
- 理解这些模式后,学习新库会快得多