D2L(动手学深度学习)环境搭建+电商数据可视化实战教程
文档说明
本文档完整记录从d2l环境搭建到实现电商产品数据可视化的全流程,所有命令/操作均可直接复用,适配Windows系统+Anaconda环境。
一、前期准备:激活d2l环境并打开终端
-
激活d2l环境
- 方式1(Anaconda Navigator):选中左侧
d2l环境 → 点击环境右侧绿色播放按钮 → 选择Open Terminal; - 方式2(Anaconda Prompt):打开Anaconda Prompt → 输入
conda activate d2l(终端开头显示(d2l)即激活成功)。
- 方式1(Anaconda Navigator):选中左侧
-
验证环境 终端输入
python --version,能正常显示Python版本(如3.9.x)即环境可用。
二、核心依赖包安装(逐行执行终端命令)
# 1. 升级pip(避免装包兼容问题,清华源加速)
python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
# 2. 安装PyTorch CPU版(适配学习场景,无需GPU)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
# 3. 安装d2l工具包+Jupyter(核心运行环境)
pip install d2l==0.17.6 jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple
# 4. 解决Jupyter版本冲突(若启动报错时执行)
pip uninstall notebook jupyter-server -y
pip install notebook==6.5.6 jupyter-server==2.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
# 5. 安装可视化依赖(解决图表显示问题)
pip install matplotlib-inline -i https://pypi.tuna.tsinghua.edu.cn/simple
三、启动Jupyter Notebook
- 在
(d2l)终端输入:jupyter notebook - 自动弹出浏览器(地址:
http://localhost:8888/),若未弹出,复制终端内http://localhost:8888/?token=xxx链接手动打开。
四、电商数据可视化实战(模拟数据)
1. 新建Notebook
- 在Jupyter文件页右上角点击
New→ 选择Python 3 (ipykernel),生成空白Notebook。
2. 粘贴完整代码(直接运行)
# 解决Matplotlib中文显示问题(Windows专用)
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
plt.rcParams["axes.unicode_minus"] = False
# 导入核心库
import pandas as pd
import matplotlib
matplotlib.use('Agg') # 避开Jupyter图表后端兼容问题
import numpy as np
# 生成模拟电商产品数据(500个产品)
np.random.seed(123) # 固定随机数,结果可复现
product_data = {
"产品ID": [f"P{1000+i}" for i in range(500)],
"平台": np.random.choice(["亚马逊", "TK", "沃尔玛"], size=500),
"类目": np.random.choice(["服装", "3C", "家居", "户外"], size=500),
"售价": np.round(np.random.uniform(10, 100, size=500), 2),
"成本": np.round(np.random.uniform(5, 60, size=500), 2),
"销量": np.random.randint(0, 500, size=500),
"评分": np.round(np.random.uniform(3.0, 5.0, size=500), 1)
}
# 转换为表格并分析
df = pd.DataFrame(product_data)
# 1. 输出前10行数据
print("===== 模拟产品数据(前10行) =====")
print(df.head(10))
# 2. 输出核心指标统计
print("\n===== 数据基本统计(核心指标) =====")
print(df[["售价", "成本", "销量", "评分"]].describe())
# 3. 输出各平台平均销量
print("\n===== 各平台平均销量 =====")
platform_sales = df.groupby("平台")["销量"].mean().sort_values(ascending=False)
print(platform_sales)
# 4. 生成销量分布直方图(保存为图片)
plt.figure(figsize=(10, 5))
df["销量"].hist(bins=20, color="#4CAF50", edgecolor="black")
plt.title("产品销量分布(模拟数据)", fontsize=12)
plt.xlabel("销量", fontsize=10)
plt.ylabel("产品数量", fontsize=10)
plt.grid(axis="y", alpha=0.3)
plt.savefig("sales_distribution.png")
plt.close()
# 5. 生成类目销量柱状图(保存为图片)
plt.figure(figsize=(8, 4))
category_sales = df.groupby("类目")["销量"].mean().sort_values(ascending=False)
category_sales.plot(kind="bar", color="#2196F3", edgecolor="black")
plt.title("不同类目平均销量(模拟数据)", fontsize=12)
plt.xlabel("类目", fontsize=10)
plt.ylabel("平均销量", fontsize=10)
plt.xticks(rotation=0)
plt.grid(axis="y", alpha=0.3)
plt.savefig("category_sales.png")
plt.close()
print("\n✅ 运行完成!")
print("📊 图表已保存为:sales_distribution.png 和 category_sales.png")
print("👉 回到Jupyter文件列表页即可查看图片!")
3. 运行代码
- 选中代码块 → 按
Shift+Enter(或点击顶部▶️ Run按钮); - 运行后可见文字输出(数据表格/统计值),并生成2张可视化图片。
五、常见问题及解决方案
| 问题现象 | 原因 | 解决方案 |
|---|---|---|
Jupyter启动报错ModuleNotFoundError: No module named 'jupyter_server.contents' | notebook与jupyter-server版本不兼容 | 执行:pip uninstall notebook jupyter-server -y && pip install notebook==6.5.6 jupyter-server==2.10.0 |
图表不显示/报matplotlib-inline错误 | 缺少内嵌显示依赖 | 执行:pip install matplotlib-inline |
| 图片中文字显示为方框/乱码 | Windows无Matplotlib中文字体 | 在代码开头添加中文配置(见实战代码第2-5行) |
六、后续操作建议
- 替换为真实数据:将代码中“模拟数据生成”部分替换为
df = pd.read_csv("你的产品数据.csv"),即可分析自有ERP数据; - 进阶学习:从《动手学深度学习》第3章“线性网络”入手,实现产品销量预测;
- Jupyter使用技巧:
- 关闭Jupyter:先关浏览器 → 终端按
Ctrl+C→ 输入y确认; - 下次启动:
conda activate d2l→jupyter notebook。
- 关闭Jupyter:先关浏览器 → 终端按
文档下载保存方法
- 复制上述全部内容;
- 打开电脑记事本(Notepad)→ 粘贴内容 → 点击“文件”→“保存”;
- 保存类型选择“所有文件”,文件名填写
D2L环境搭建+电商可视化教程.md,编码选择UTF-8; - 保存后可直接用记事本/VS Code/浏览器打开查看,也可导入Markdown编辑器格式化显示。
总结
- 核心流程:激活d2l环境 → 安装依赖包 → 启动Jupyter → 运行可视化代码,全程无需GPU,纯CPU即可完成;
- 关键解决点:Jupyter版本冲突、Matplotlib中文显示、图表后端兼容问题;
- 实战价值:可直接替换为真实电商数据,完成销量统计/类目分析/可视化,为后续机器学习打基础。