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

ML基础-Jupyter notebook中的魔法命令

在 Jupyter Notebook 或 IPython 环境中,“魔法命令”(Magic Commands)是一些以百分号(%)或惊叹号(!)开头的特殊命令,用于执行一些与代码运行环境相关的操作,而不仅仅是执行普通的 Python 代码。魔法命令可以大大增强 Jupyter Notebook 的功能和用户体验。
用过colab的人应该很熟悉了。


1. % 开头的魔法命令

% 开头的魔法命令分为两类:行魔法命令(Line Magic)和单元魔法命令(Cell Magic)。行魔法命令以单 % 开头,作用于单行代码;单元魔法命令以双 %% 开头,作用于整个代码单元。

1.1 常见 % 魔法命令
命令描述示例
%time测量单行代码的执行时间%time result = some_function()
%timeit多次运行单行代码以获取更准确的执行时间%timeit result = some_function()
%run运行外部 Python 脚本%run myscript.py
%pwd显示当前工作目录%pwd
%ls列出当前目录下的文件和文件夹%ls
%cd更改当前工作目录%cd /path/to/directory
%who列出当前命名空间中的变量%who
%whos显示变量的详细信息%whos
%reset清除当前命名空间中的所有变量%reset
%history显示命令历史%history
%lsmagic列出所有可用的魔法命令%lsmagic
%config查看或修改配置%config InlineBackend.figure_format = "retina"
%debug进入交互式调试模式%debug
%store保存变量到磁盘,可在后续会话中恢复%store variable
%store -r从磁盘恢复保存的变量%store -r variable
%psource显示对象的源代码%psource my_function
1.2 常见 %% 魔法命令
命令描述示例
%%time测量整个代码单元的执行时间%%time

result = some_function()

print(result)
%%writefile将代码单元的内容写入文件%%writefile myfile.py

def hello():

print("Hello, world!")
%%capture捕获代码单元的输出%%capture

print("This output will be captured.")
%%bash执行 Bash 命令%%bash

echo "Hello from Bash!"

ls
%%html渲染 HTML 代码%%html

<h1>Hello, world!</h1>

2. ! 开头的魔法命令

! 开头的命令用于在 Jupyter Notebook 中执行系统命令,类似于在终端中运行命令。

2.1 常见 ! 命令
命令描述示例
!ls列出当前目录下的文件和文件夹!ls
!pwd显示当前工作目录!pwd
!cd更改当前工作目录(注意:!cd
不会改变 Jupyter 的工作目录,仅对当前单元有效)
!cd /path/to/directory
!mkdir创建新目录!mkdir new_folder
!rm删除文件!rm file.txt
!rmdir删除空目录!rmdir folder
!pip install安装 Python 包!pip install package_name
!echo打印文本!echo "Hello, world!"

3. 使用示例

3.1 % 魔法命令示例
# 测量单行代码的执行时间
%time result = [i for i in range(1000000)]

# 列出当前目录下的文件
%ls

# 显示当前工作目录
%pwd

# 清除所有变量
%reset

# 显示变量详细信息
%whos
3.2 %% 魔法命令示例
# 测量整个代码单元的执行时间
%%time
import time
time.sleep(2)
print("Done!")

# 将代码写入文件
%%writefile example.py
def greet(name):
    print(f"Hello, {name}!")
3.3 ! 命令示例
# 列出当前目录下的文件
!ls

# 创建新目录
!mkdir test_folder

# 安装 Python 包
!pip install numpy

4. 总结

  • % 开头的魔法命令用于执行单行操作或配置环境。
  • %% 开头的魔法命令用于对整个代码单元进行操作。
  • ! 开头的命令用于执行系统命令,类似于在终端中运行命令。 这些魔法命令能够显著提升 Jupyter Notebook 的使用效率,帮助用户更便捷地进行数据分析和代码调试。

除了前面提到的 %! 开头的魔法命令之外,Jupyter Notebook 和 IPython 还提供了许多其他有用的魔法命令,这些命令可以帮助用户更高效地进行数据分析、代码调试和环境管理。

以下是一些补充的魔法命令及其使用示例。


补充的魔法命令

1. %matplotlib:绘图相关
  • %matplotlib inline:将 Matplotlib 图形嵌入到 Notebook 中。
  • %matplotlib notebook:生成可交互的图形,支持缩放和移动。
  • %config InlineBackend.figure_format = "retina":提高图形的分辨率。

示例:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x))
plt.show()
2. %pdb:调试相关
  • %pdb:开启或关闭自动调试模式。当代码中出现异常时,会自动进入调试模式。
  • %debug:进入交互式调试模式,用于调试当前代码。

示例:

%pdb on  # 开启自动调试模式
def divide(a, b):
    return a / b

result = divide(10, 0)  # 这里会触发异常并进入调试模式
3. `%load:代码加载
  • %load:将外部文件的内容加载到当前代码单元中。
  • %load_ext:加载扩展模块,例如 sqlautoreload

示例:

%load myscript.py  # 将 myscript.py 的内容加载到当前单元
4. %autoreload:自动重新加载模块
  • %load_ext autoreload:加载自动重新加载扩展。
  • %autoreload 2:自动重新加载所有模块,每次调用函数时都会重新加载模块。

示例:

%load_ext autoreload
%autoreload 2

import mymodule
mymodule.some_function()  # 如果 mymodule.py 被修改,会自动重新加载
5. %who:变量管理
  • %who:列出当前命名空间中的变量。
  • %whos:列出当前命名空间中的变量及其详细信息。
  • %reset:清除当前命名空间中的所有变量。
  • %store:保存变量到磁盘,可在后续会话中恢复。
  • %store -r:从磁盘恢复保存的变量。

示例:

a = 10
b = "Hello"
%who  # 列出变量
%whos  # 列出变量及其详细信息
%reset  # 清除所有变量
6. %history:命令历史
  • %history:显示命令历史。
  • %history -f filename.py:将命令历史保存到文件。

示例:

%history  # 显示命令历史
%history -f my_history.py  # 将命令历史保存到文件
7. %lsmagic:列出所有魔法命令
  • %lsmagic:列出所有可用的魔法命令。

示例:

%lsmagic
8. %config:配置
  • %config:查看或修改配置。

示例:

%config InlineBackend.figure_format = "retina"  # 设置图形格式为 Retina
9. %paste:粘贴代码
  • %paste:将剪贴板中的代码粘贴到当前代码单元中。

示例:

%paste  # 粘贴剪贴板中的代码
10. %run:运行脚本
  • %run:运行外部 Python 脚本。

示例:

%run myscript.py  # 运行 myscript.py 脚本
11. %psource:显示源代码
  • %psource:显示对象的源代码。

示例:

def my_function():
    print("Hello, world!")

%psource my_function  # 显示 my_function 的源代码
12. %timeit:性能分析
  • %timeit:多次运行代码以获取更准确的执行时间。
  • %%timeit:多次运行整个代码单元以获取更准确的执行时间。

示例:

%timeit [i for i in range(1000)]  # 测量单行代码的执行时间
%%timeit
result = [i for i in range(1000)]  # 测量整个代码单元的执行时间
13. %capture:捕获输出
  • %%capture:捕获代码单元的输出,可以将输出保存到变量中。

示例:

%%capture captured_output
print("This output will be captured.")
print("Another line.")
print(captured_output)  # 打印捕获的输出
14. %env:环境变量
  • %env:设置或查看环境变量。

示例:

%env MY_VAR=123  # 设置环境变量
%env MY_VAR  # 查看环境变量
15. %alias:命令别名
  • %alias:为系统命令创建别名。

示例:

%alias ll ls -l  # 创建别名 ll,等同于 ls -l
!ll

总结

Jupyter Notebook 和 IPython 提供了丰富的魔法命令,这些命令可以帮助用户更高效地进行数据分析、代码调试和环境管理。通过合理使用这些魔法命令,可以显著提升开发效率和用户体验。


http://www.kler.cn/a/525391.html

相关文章:

  • 智能汽车网络安全威胁报告
  • deepseek R1的确不错,特别是深度思考模式
  • SSM-MyBatis-总结
  • 计算机网络 IP 网络层 2 (重置版)
  • 【C++ 真题】P1706 全排列问题
  • 渗透测试之WAF规则触发绕过规则之规则库绕过方式
  • 2024 年度技术总结:从实践到成长
  • 深入剖析TCP协议:原理, 机制与应用
  • 【计算机视觉】目标跟踪应用
  • 文献分享:Informational ecosystems提供了分析数据和代码
  • RK3568中使用QT opencv(显示基础图像)
  • 预测不规则离散运动的下一个结构
  • mT5:一种大规模多语言预训练文本到文本Transformer
  • KVM/ARM——基于ARM虚拟化扩展的VMM
  • 评估训练模型所需的算力
  • 基于Cipher的Java加密工具类
  • C++11新特性之使用using(代替typedef)定义别名
  • CAPL与外部接口
  • ORA-04031 错误
  • 简要介绍C语言和c++的共有变量,以及c++特有的变量
  • 亚博microros小车-原生ubuntu支持系列:16 机器人状态估计
  • Windows安装Milvus
  • 四.3 Redis 五大数据类型/结构的详细说明/详细使用( hash 哈希表数据类型详解和使用)
  • JavaScript网页设计案例(任务管理器)
  • 芯片AI深度实战:基础篇之langchain
  • 不背单词快捷键(不背单词键盘快捷键)