当前位置: 首页 > news >正文

Python Jupyter Notebook 完全指南:从入门到精通

目录

  1. Jupyter Notebook 简介

  2. 安装与配置

  3. 必备包大全

  4. 实用技巧与魔法命令

  5. 常见问题解答

  6. 最佳实践

简介

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

为什么选择 Jupyter Notebook?

  • 交互式开发:立即看到代码执行结果

  • 文档与代码结合:支持 Markdown 和 LaTeX

  • 可视化友好:直接在内核中显示图表和图形

  • 多语言支持:支持 40+ 编程语言

安装与配置

基础安装

bash

# 使用 pip 安装
pip install jupyter notebook# 使用 conda 安装
conda install jupyter notebook# 安装 JupyterLab(新一代界面)
pip install jupyterlab

启动 Jupyter Notebook

bash

# 启动经典 Notebook
jupyter notebook# 启动 JupyterLab
jupyter lab# 在特定端口启动
jupyter notebook --port 8888# 不使用浏览器启动
jupyter notebook --no-browser

必备包大全

1. 核心数据科学包

python

# 在 Jupyter cell 中直接安装
!pip install pandas numpy scipyimport pandas as pd
import numpy as np
import scipy.stats as stats

pandas:数据处理与分析

  • DataFrame 操作

  • 数据清洗

  • 时间序列分析

numpy:数值计算

  • 多维数组操作

  • 线性代数运算

  • 随机数生成

2. 数据可视化包

python

!pip install matplotlib seaborn plotly bokehimport matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px

可视化示例

python

# 创建示例数据
import pandas as pd
import matplotlib.pyplot as pltdata = pd.DataFrame({'x': range(100),'y': np.random.randn(100).cumsum()
})# 绘制图表
plt.figure(figsize=(10, 6))
plt.plot(data['x'], data['y'])
plt.title('随机游走示例')
plt.xlabel('时间步')
plt.ylabel('值')
plt.grid(True)
plt.show()

3. 机器学习包

python

!pip install scikit-learn xgboost lightgbm catboostfrom sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

机器学习示例

python

# 加载数据
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report# 准备数据
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42
)# 训练模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)# 预测与评估
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

4. 深度学习框架

python

# TensorFlow
!pip install tensorflow
import tensorflow as tf# PyTorch
!pip install torch torchvision
import torch
import torch.nn as nn# Keras
!pip install keras
from keras.models import Sequential

5. Jupyter 增强包

python

# 安装扩展
!pip install jupyter_contrib_nbextensions ipywidgets# 启用扩展
!jupyter contrib nbextension install --user
!jupyter nbextension enable codefolding/main# 交互式控件
import ipywidgets as widgets
from IPython.display import display

实用技巧与魔法命令

魔法命令大全

python

# 显示所有魔法命令
%lsmagic# 性能测试
%timeit [x**2 for x in range(1000)]# 代码执行时间
%%time
import time
time.sleep(2)
print("执行完成")# 外部脚本运行
%run myscript.py# 调试模式
%pdb on# 自动重载模块
%load_ext autoreload
%autoreload 2# 显示 matplotlib 图表
%matplotlib inline

实用快捷键

快捷键功能
Shift + Enter运行当前单元格
Ctrl + Enter运行当前单元格并保持选中
Alt + Enter运行当前单元格并在下方插入新单元格
Esc + A在上方插入单元格
Esc + B在下方插入单元格
Esc + M将单元格转换为 Markdown
Esc + Y将单元格转换为代码

自定义设置

python

# 常用配置
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"# 显示所有输出
def display_all():import pandas as pdpd.set_option('display.max_rows', None)pd.set_option('display.max_columns', None)display_all()

常见问题解答

1. 包安装问题

问题!pip install 不工作
解决方案

python

# 方法1:使用系统Python
import sys
!{sys.executable} -m pip install package_name# 方法2:使用conda
!conda install package_name# 方法3:重启内核后安装

2. 内核崩溃

解决方案

bash

# 查看当前内核
jupyter kernelspec list# 删除问题内核
jupyter kernelspec remove kernel_name# 重新安装内核
python -m ipykernel install --user

3. 内存管理

python

# 监控内存使用
import psutil
import osdef memory_usage():process = psutil.Process(os.getpid())return process.memory_info().rss / 1024 / 1024  # MBprint(f"当前内存使用: {memory_usage():.2f} MB")# 清理内存
import gc
gc.collect()

4. 大文件处理技巧

python

# 分块读取大文件
chunk_size = 10000
chunks = pd.read_csv('large_file.csv', chunksize=chunk_size)for chunk in chunks:# 处理每个数据块process_chunk(chunk)# 使用数据类型优化
dtypes = {'column1': 'category', 'column2': 'float32'}
df = pd.read_csv('file.csv', dtype=dtypes)

最佳实践

1. 项目结构组织

text

my_project/
│
├── data/
│   ├── raw/
│   ├── processed/
│   └── external/
│
├── notebooks/
│   ├── 01_data_exploration.ipynb
│   ├── 02_feature_engineering.ipynb
│   └── 03_model_training.ipynb
│
├── src/
│   ├── __init__.py
│   ├── data_processing.py
│   └── model_utils.py
│
└── requirements.txt

2. 代码质量

python

# 好的实践:添加文档字符串
def calculate_metrics(y_true, y_pred):"""计算分类模型评估指标Parameters:y_true (array): 真实标签y_pred (array): 预测标签Returns:dict: 包含准确率、精确率、召回率的字典"""from sklearn.metrics import accuracy_score, precision_score, recall_scorereturn {'accuracy': accuracy_score(y_true, y_pred),'precision': precision_score(y_true, y_pred, average='weighted'),'recall': recall_score(y_true, y_pred, average='weighted')}

3. 版本控制

bash

# 为 Jupyter notebook 配置 git
pip install nbdime# 配置 git 差异工具
nbdime config-git --enable --global# 清理 notebook 输出
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace notebook.ipynb

4. 性能优化技巧

python

# 使用向量化操作代替循环
import numpy as np# 不好的做法
result = []
for i in range(len(array1)):result.append(array1[i] + array2[i])# 好的做法
result = array1 + array2# 使用并行处理
from joblib import Parallel, delayeddef process_item(item):return item * 2results = Parallel(n_jobs=4)(delayed(process_item)(item) for item in large_list)

进阶功能

1. 创建交互式仪表板

python

import ipywidgets as widgets
from IPython.display import display# 创建控件
slider = widgets.FloatSlider(value=0.5, min=0, max=1.0, step=0.1, description='阈值:')
dropdown = widgets.Dropdown(options=['选项1', '选项2', '选项3'], description='选择:')# 交互函数
def update_plot(threshold, option):# 根据控件值更新图表plt.figure(figsize=(10, 6))# 绘图代码...plt.show()# 连接交互
widgets.interactive(update_plot, threshold=slider, option=dropdown)

2. 导出和共享

bash

# 导出为 HTML
jupyter nbconvert --to html notebook.ipynb# 导出为 PDF
jupyter nbconvert --to pdf notebook.ipynb# 导出为 Markdown
jupyter nbconvert --to markdown notebook.ipynb# 导出为 Python 脚本
jupyter nbconvert --to python notebook.ipynb

总结

Jupyter Notebook 是数据科学和机器学习的强大工具,通过掌握这些包和技巧,您可以:

  • ✅ 高效进行数据分析和可视化

  • ✅ 构建和训练机器学习模型

  • ✅ 创建交互式报告和仪表板

  • ✅ 协作共享您的工作成果

  • ✅ 优化工作流程和性能

记住,实践是学习的最好方式。立即开始您的 Jupyter Notebook 之旅吧!

http://www.dtcms.com/a/564665.html

相关文章:

  • 站点查询wordpress 外贸网站
  • CSP集训错题集 第八周 主题:基础图论
  • 基于C语言 HTTP 服务器客户端的实验
  • 如何利用 Jupyter 从浏览器访问远程服务器
  • C语言基础知识点简单案例分享之二——C语言全知识点速查宝典
  • 怎么找网站局域网电脑做网站服务器
  • 一男一女做那个的动漫视频网站网站怎样推广 优帮云
  • hive常用命令
  • AWS + 飞天CMS:高性能内容站的云端搭建方案
  • 800G光模块:驱动AI与云计算高速互联的核心引擎
  • Python每日一练---第三天:删除有序数组中的重复项
  • U-Net 的输入与输出:通用场景与扩散模型场景解析
  • 李宏毅机器学习笔记39
  • 【代码随想录算法训练营——Day57(Day56周日休息)】图论——53.寻宝
  • PPT+配音生成带旁白的PPT演示视频
  • abp vnext cli无法正常使用,卡在 Checking extensions..,cli修改abp版本及.net版本
  • 萤石摄像头使用NAS作为存储
  • 2025江西省职业院校技能大赛(中职组)移动应用与开发竞赛样题
  • 建站公司哪家好在哪里推广比较好
  • 在 iOS 18 的照片应用,如何批量隐藏截屏?
  • OK3568 Android11 实现 App 独占隔离 CPU 核心完整指
  • 湖南网站建设公司 都来磐石网络泰安营销型网站建设公司
  • Oracle 如何计算 AWR 报告中的 Sessions 数量
  • JavaScript 流程控制语句
  • 走向专精:我的NLP特化算子开发之旅
  • 如何写prompt?prompt收集
  • 打工人日报#20251103
  • 技术文章大纲:设备如何“开口说话”?
  • CH585 高速 USB模拟 CDC串口应用示例
  • 2024/07 JLPT听力原文 问题四