数据挖掘(二) ----- Jupyter Notebook使用示例和常见问题

一、Jupyter Notebook 简介

Jupyter Notebook 是一个开源的 Web 应用程序,允许创建和共享包含实时代码、方程式、可视化和文本的文档。它广泛应用于数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等领域。

二、环境安装与配置

2.1 安装方法

bash 复制代码
# 使用pip安装
pip install jupyter notebook

# 或使用conda安装(推荐)
conda install jupyter notebook

2.2 启动 Notebook

bash 复制代码
# 基本启动
jupyter notebook

# 指定端口启动
jupyter notebook --port 8888

# 不自动打开浏览器
jupyter notebook --no-browser

# 指定工作目录
jupyter notebook --notebook-dir=/path/to/your/notebooks

三、基本使用示例

3.1 创建新 Notebook

  1. 启动 Jupyter Notebook 后,在 Web 界面点击右上角"New" → "Python 3"
  2. 系统会创建一个新的 Notebook 文件(.ipynb 后缀)

3.2 基本单元格操作

python 复制代码
# 代码单元格示例
print("Hello, Jupyter Notebook!")
python 复制代码
# Markdown单元格示例(按M键转换为Markdown)
# 一级标题
## 二级标题
### 三级标题

- 列表项1
- 列表项2

**粗体文本** *斜体文本*

3.3 常用快捷键

快捷键 功能 模式
Ctrl+Enter 运行当前单元格 命令/编辑
Shift+Enter 运行当前单元格并跳转到下一个 命令/编辑
Alt+Enter 运行当前单元格并在下方插入新单元格 命令/编辑
Esc 进入命令模式 -
Enter 进入编辑模式 -
A 在上方插入单元格 命令模式
B 在下方插入单元格 命令模式
D+D 删除单元格 命令模式
Z 撤销删除 命令模式
M 转换为Markdown单元格 命令模式
Y 转换为代码单元格 命令模式
Shift+M 合并选中的单元格 命令模式

3.4 数据可视化示例

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# 创建示例数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 绘制图形
plt.figure(figsize=(10, 6))
plt.plot(x, y, label='sin(x)', color='blue', linewidth=2)
plt.title('正弦函数示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend()
plt.grid(True)
plt.show()

3.5 数据操作示例

python 复制代码
# 创建示例DataFrame
data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '年龄': [25, 30, 35, 28],
    '城市': ['北京', '上海', '广州', '深圳'],
    '工资': [50000, 60000, 55000, 65000]
}

df = pd.DataFrame(data)
df
python 复制代码
# 数据分析
print("数据统计信息:")
print(df.describe())

print("\n平均工资:", df['工资'].mean())
print("最大年龄:", df['年龄'].max())

四、常见问题与解决方案

4.1 启动问题

问题1:Jupyter Notebook 无法启动

bash 复制代码
# 解决方案:
# 1. 检查端口是否被占用
jupyter notebook --port 8889

# 2. 清除配置文件
jupyter notebook --generate-config
# 或删除 ~/.jupyter 文件夹重新配置

问题2:导入包时出现 ModuleNotFoundError

python 复制代码
# 解决方案:在Notebook中安装包
!pip install package_name

# 或使用魔法命令
%pip install package_name

4.2 运行时问题

问题3:内核崩溃或重启

python 复制代码
# 解决方案:
# 1. 重置内核:Kernel → Restart
# 2. 清理内存
import gc
gc.collect()

# 3. 限制内存使用
import resource
resource.setrlimit(resource.RLIMIT_AS, (4 * 1024**3, -1))  # 限制4GB

问题4:长时间运行任务

python 复制代码
# 使用后台运行
from IPython.lib import backgroundjobs as bg
jobs = bg.BackgroundJobManager()

# 或使用异步执行
%load_ext autoreload
%autoreload 2

4.3 显示问题

问题5:图表显示不完整

python 复制代码
# 解决方案:
import matplotlib.pyplot as plt
%matplotlib inline
# 或
%matplotlib notebook

# 设置显示选项
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

4.4 文件操作问题

问题6:文件路径问题

python 复制代码
import os

# 获取当前工作目录
current_dir = os.getcwd()
print("当前目录:", current_dir)

# 更改工作目录
os.chdir('/path/to/your/directory')

# 列出文件
!ls -la

五、使用技巧

5.1 魔法命令

python 复制代码
# 时间测量
%time sum(range(1000000))

%timeit sum(range(1000000))

%%time
total = 0
for i in range(1000000):
    total += i
python 复制代码
# 系统命令
!pip list  # 列出已安装包
!ls -la    # 列出文件
!pwd       # 显示当前路径
python 复制代码
# 自动重载模块
%load_ext autoreload
%autoreload 2

5.2 插件安装

bash 复制代码
# 安装插件管理器
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

# 启用常用插件
jupyter nbextension enable code_prettify/code_prettify
jupyter nbextension enable execute_time/ExecuteTime
jupyter nbextension enable spellchecker/main

5.3 主题设置

bash 复制代码
# 安装主题
pip install jupyterthemes

# 查看可用主题
jt -l

# 设置主题
jt -t onedork -fs 12 -cellw 90%

六、导出与分享

6.1 导出格式

bash 复制代码
# 导出为HTML
jupyter nbconvert --to html notebook.ipynb

# 导出为PDF(需要安装LaTeX)
jupyter nbconvert --to pdf notebook.ipynb

# 导出为Markdown
jupyter nbconvert --to markdown notebook.ipynb

# 导出为Python脚本
jupyter nbconvert --to python notebook.ipynb

6.2 导入CSDN等博客平台

  1. 导出为Markdown
bash 复制代码
jupyter nbconvert --to markdown notebook.ipynb
  1. 调整图片路径
  • 默认情况下图片会保存在 notebook_files/ 文件夹
  • 上传图片到博客平台的图床
  • 替换Markdown中的图片链接
  1. 优化内容格式
  • 确保代码块有正确的语言标记
  • 检查数学公式渲染
  • 调整标题层级结构

6.3 分享到GitHub

  1. .ipynb 文件推送到GitHub仓库
  2. GitHub会自动渲染Notebook
  3. 可以使用 nbviewer 进行在线查看

七、最佳实践

7.1 代码组织

python 复制代码
# 模块化导入
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 设置全局样式
plt.style.use('seaborn-whitegrid')
%matplotlib inline
pd.set_option('display.max_columns', 50)

7.2 版本控制

bash 复制代码
# 安装nbstripout清理输出
pip install nbstripout

# 设置git过滤器
nbstripout --install

7.3 调试技巧

python 复制代码
# 使用pdb调试
import pdb

def debug_function():
    pdb.set_trace()  # 设置断点
    # 你的代码

# 或使用魔术命令
%debug
%pdb

7.4 性能优化

python 复制代码
# 1. 使用矢量化操作替代循环
import numpy as np

# 慢
result = []
for i in range(1000000):
    result.append(i * 2)
    
# 快
result = np.arange(1000000) * 2

# 2. 使用合适的数据类型
df['column'] = df['column'].astype('category')

# 3. 内存优化
df = pd.read_csv('large_file.csv', chunksize=10000)

八、扩展功能

8.1 JupyterLab

bash 复制代码
# 安装JupyterLab
pip install jupyterlab

# 启动
jupyter lab

8.2 JupyterHub(多用户)

bash 复制代码
# 安装
pip install jupyterhub

# 配置多用户环境
# 参考官方文档进行详细配置

8.3 内核管理

bash 复制代码
# 查看可用内核
jupyter kernelspec list

# 安装新内核(如Python2)
python2 -m pip install ipykernel
python2 -m ipykernel install --user

# 删除内核
jupyter kernelspec remove kernelname

九、故障排除清单

  1. 启动问题

    • 检查Python环境
    • 检查端口占用
    • 查看日志文件
  2. 导入错误

    • 检查包是否安装
    • 检查Python路径
    • 重启内核
  3. 显示问题

    • 检查前端设置
    • 更新浏览器
    • 清除缓存
  4. 性能问题

    • 监控内存使用
    • 优化代码
    • 使用适当的数据结构
  5. 保存问题

    • 检查文件权限
    • 检查磁盘空间
    • 手动备份重要文件

十、学习资源

  1. 官方文档: https://jupyter.org/documentation
  2. Jupyter Notebook Gallery: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks
  3. DataCamp教程: https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook
  4. Real Python教程: https://realpython.com/jupyter-notebook-introduction/

总结: Jupyter Notebook 是一个强大的交互式计算环境,通过掌握上述技巧和解决方案,可以大大提高工作效率。建议定期备份重要Notebook,并探索 JupyterLab 等更先进的替代工具以获得更好的开发体验。

相关推荐
咕噜咕噜万1 小时前
版本管理与产品迭代:规划、执行、工具与复盘全流程
大数据·人工智能
风哥在风中2 小时前
当人类站在人工智能的十字路口
人工智能·智人·智人2.0·人工智能方向
IT管理圈2 小时前
Agent-S 安装使用教程:自动操作电脑的 AI
人工智能
KG_LLM图谱增强大模型2 小时前
2026 JPM医疗大会深度解读:AI浪潮如何重塑医药大健康未来
人工智能
weisian1512 小时前
入门篇--知名企业-36-开源vs闭源:AI时代的终极博弈,没有赢家只有适配者
人工智能·开源
(; ̄ェ ̄)。2 小时前
机器学习入门(七)线性回归,数学计算流程,含梯度下降,损失函数
人工智能·机器学习·线性回归
扫地僧9852 小时前
生成式人工智能(What is Generative AI?)
人工智能
音沐mu.2 小时前
【49】脑瘤数据集(有v5/v8模型)/YOLO脑瘤检测
人工智能·yolo·目标检测·目标检测数据集·脑瘤检测·脑瘤数据集
沫儿笙2 小时前
安川机器人二八混合气体节约方法
人工智能·机器人