IPython 常用魔法命令

news2025/5/25 17:56:35

文章目录

  • IPython 魔法命令(Magic Commands)
    • 一、系统与文件操作
      • 1. `%ls`
      • 2. `%cd​​`和`%pwd`
      • 3. `%%writefile​​`
      • 4. `%run`
    • 二、性能分析与计时
      • 1. `%timeit`
      • 2. `%prun​​`
      • 3. `​​%%timeit`
    • 三、代码处理与交互
      • 1. `%load`
      • 2. `​​%edit`
      • 3. ​​`%store`
    • 四、调试与诊断
      • 2. ​​`%pdb`
      • 3. ​​`%who`
    • 五、扩展与工具集成
      • 2. ​`​%load_ext`
      • 3. ​`​%%html`和`%%javascript`
    • 六、信息查询与帮助
      • 2. `​​%lsmagic​​`
      • 3. ​`​%history​​`
    • 七、高级功能示例
      • 2. ​​`%%script`
      • 3. ​​`%%latex`

IPython 魔法命令(Magic Commands)

IPython 的​​魔法命令(Magic Commands)​​是其交互式环境中的特殊指令,以 % 或 %% 开头,用于快速执行非 Python 标准功能的任务(如文件操作、性能分析、系统交互等)。它们大幅提升了代码编写和调试效率,尤其在 Jupyter Notebook 中广泛应用。
IPython 的魔法命令是其核心特色功能,分为​​行魔法​​(% 前缀)和​​单元魔法​​(%% 前缀)。以下是常用魔法命令分类详解及代码示例。

一、系统与文件操作

1. %ls

列出当前目录文件(类似Shell命令)

# 显示详细文件列表
%ls -l

2. %cd​​%pwd

切换工作目录和显示当前目录

# 切换到 ../data 目录
%cd ../data
# 显示当前目录
%pwd
# 切换回文件所在目录
%cd ../notebooks

目录切换

3. %%writefile​​

将代码单元内容写入文件

%%writefile test.py
def hello():
    print("Hello from magic command!")

4. %run

执行外部Python脚本

%run test.py  # 执行刚创建的 test.py
# 运行 test.py 中的 hello 函数
hello()

执行脚本

二、性能分析与计时

1. %timeit

测量代码执行时间(自动多次运行取平均)

%timeit [x**2 for x in range(1000)]
# 输出示例:259 µs ± 4.56 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

测量代码执行时间

2. %prun​​

性能分析(函数级耗时统计)

def sum_squares(n):
    return sum([i**2 for i in range(n)])

%prun sum_squares(100000)
# 输出各函数调用耗时统计表

prun

3. ​​%%timeit

测量整个代码单元的执行时间

%%timeit
import numpy as np
arr = np.random.rand(1000)
arr.mean()

timeit

三、代码处理与交互

1. %load

加载外部代码到当前单元,如%load test.py

%load test.py

2. ​​%edit

编辑代码并执行(打开编辑器)

# 编辑后直接执行
%edit test.py
hello()

3. ​​%store

跨会话变量存储

data = [1,2,3]
# 存储变量
%store data
# 恢复变量(下次启动仍可用)
%store -r data

四、调试与诊断

  1. ​%debug

自动进入调试器(在异常后使用)

def divide(a, b):
    return a / b

# 触发 ZeroDivisionError
# 进入 pdb 调试环境
%debug divide(1, 0)

debug

2. ​​%pdb

自动启动调试器(全局设置)

# 开启自动调试(触发异常时自动进入 pdb)
%pdb on

3. ​​%who

查看当前命名空间变量

a = 1
b = "text"
# 输出当前命名空间变量
%who
# 仅显示字符串变量: b
%who str

五、扩展与工具集成

  1. ​%matplotlib

控制 Matplotlib 绘图显示

# 内嵌显示图表(Jupyter 常用)
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2,3])

plot

2. ​​%load_ext

加载 IPython 扩展

# 加载自动重载模块扩展
%load_ext autoreload
# 修改代码后自动重新加载模块
%autoreload 2

3. ​​%%html%%javascript

渲染HTML,执行JavaScript

%%html
<div style="color:red">This is HTML!</div>

HTML

%%javascript
alert("Hello from JavaScript!");

js

六、信息查询与帮助

  1. ​​%magic

查看魔法命令文档

%magic
# 显示所有可用的魔法命令

magic

2. ​​%lsmagic​​

列出所有可用魔法命令

%lsmagic
# 显示所有可用的魔法命令

3. ​​%history​​

显示命令历史

%history -n 1-3
# 显示历史命令(第1-3条)

七、高级功能示例

  1. ​​%%capture​​

捕获输出/错误流

%%capture result
import sys
print("Captured output")
sys.stderr.write("Error message")
result.stdout  
# 获取捕获的标准输出

2. ​​%%script

调用外部解释器

%%script cmd
# Windows 命令行脚本,Linux/MacOS 可用 bash,即 %%script bash
echo "Running Bash script!"
ls -l

3. ​​%%latex

渲染 LaTeX 公式

%%latex
\begin{equation}
E = mc^2
\end{equation}

latex

IPython 魔法命令大幅提升了交互式编程效率,尤其在数据分析、快速原型开发场景中,能够无缝结合 Python 代码与系统工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java虚拟机 - 程序计数器和虚拟机栈

运行时数据结构 Java运行时数据区程序计数器为什么需要程序计数器执行流程虚拟机栈虚拟机栈作用虚拟机栈核心结构运行机制 Java运行时数据区 首先介绍Java运行时数据之前&#xff0c;我们要了解&#xff0c;对于计算机来说&#xff0c;内存是非常重要的资源&#xff0c;因为内…

新能源汽车产业链图谱分析

1. 产业定义 新能源汽车是指采用非常规的车用燃料作为动力来源&#xff0c;综合车辆的动力控制和驱动方面的先进技术&#xff0c;形成的具有新技术、新结构、技术原理先进的汽车。 新能源车包括四大类型&#xff1a;混合动力电动汽车&#xff08;HEV&#xff09;、纯电动汽车…

如何在PyCharm2025中设置conda的多个Python版本

前言 体验的最新版本的PyCharm(Community)2025.1.1&#xff0c;发现和以前的版本有所不同。特别是使用Anaconda中的多个版本的Python的时候。 关于基于Anaconda中多个Python版本的使用&#xff0c;以及对应的Pycharm&#xff08;2023版&#xff09;的使用&#xff0c;可以参考…

maven快速上手

之前我们项目如果要用到其他额外的jar包&#xff0c;需要自己去官网下载并且导入。但是有maven后&#xff0c;直接在maven的pom.xml文件里用代码配置即可&#xff0c;配置好后maven会自动帮我们联网下载并且会自动导入该jar包 在右边的maven中&#xff0c;我们可以看到下载安装…

cplex12.9 安装教程以及下载

cplex 感觉不是很好找&#xff0c;尤其是教育版&#xff0c;我这里提供一个版本&#xff0c;在下面的图可以看到&#xff0c;不仅可以配置matlab&#xff0c;也可以配置vs,现在拿vs2017来测试一下&#xff0c;具体文件的文件有需要的可以复制下面的链接获取 我用网盘分享了「c…

甘特图实例 dhtmlxGantt.js

本文介绍了如何使用dhtmlxGantt库创建一个基础的甘特图示例&#xff0c;并对其进行汉化和自定义配置。首先&#xff0c;通过引入dhtmlxgantt.css和dhtmlxgantt.js文件初始化甘特图。接着&#xff0c;通过设置gantt.i18n.setLocale("cn")实现核心文本的汉化&#xff0…

视频剪辑 VEGAS - 配置视频片段保持原长宽比

VEGAS 配置视频片段保持原长宽比 右击视频片段 -> 选择【开关】 -> 勾选【保持长宽比】 右击视频片段 -> 点击【属性】 -> 弹出【属性】窗口 点击【媒体】 -> 选择【像素宽高比】为【1,0000&#xff08;方形&#xff09;】

力扣 54 .螺旋矩阵

文章目录 题目介绍题解 题目介绍 题解 代码如下&#xff1a; class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res new ArrayList<>();if (matrix.length 0){return res;}int l 0, r matrix[0].length - 1, t 0, b…

四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API

【API 开发篇 】&#xff1a;使用 Django REST Framework 构建项目与模块 CRUD API 前言为什么选择 Django REST Framework (DRF)&#xff1f;第一步&#xff1a;创建 Serializers (序列化器)第二步&#xff1a;创建 ViewSets (视图集)第三步&#xff1a;配置 URLs (路由)第四步…

ARM笔记-ARM伪指令及编程基础

第四章 ARM伪指令及编程基础 4.1 伪指令概述 4.1.1 伪指令定义 人们设计了一些专门用于指导汇编器进行汇编工作的指令&#xff0c;由于这些指令不形成机器码指令&#xff0c;它们只是在汇编器进行汇编工作的过程中起作用&#xff0c;所以被叫做伪指令。 4.1.2 伪指令特征 …

Python入门手册:Python基础语法

Python是一种简洁、易读且功能强大的编程语言&#xff0c;非常适合初学者入门。无论你是编程新手&#xff0c;还是有一定编程基础但想学习Python的开发者&#xff0c;掌握Python的基础语法都是迈向高效编程的第一步。本文将详细介绍Python的基本语法&#xff0c;包括变量和数据…

CAD如何导出PDF?PDF如何转CAD?详细教程来了

浩辰CAD看图王是一款功能强大的CAD图纸查看与编辑工具&#xff0c;其核心功能之一便是支持CAD与PDF格式的互转。下面是CAD看图王输出PDF和PDF转CAD功能的详细介绍及操作步骤&#xff1a; 一、输出PDF功能 看图王可以将CAD图纸转换为PDF格式&#xff0c;是文件在不同的设备上显…

python-数据可视化(大数据、数据分析、可视化图像、HTML页面)

通过 Python 读取 XLS 、CSV文件中的数据&#xff0c;对数据进行处理&#xff0c;然后生成包含柱状图、扇形图和折线图的 HTML 报告。这个方案使用了 pandas 处理数据&#xff0c;matplotlib 生成图表&#xff0c;并将图表嵌入到 HTML 页面中。 1.XSL文件生成可视化图像、生成h…

【笔记】OpenCV的学习(未完)

由于只记关键和不懂的部分 希望做到下次再看这部分笔记就记得 所以用词会非常简练 前向传播 输入数据依次经过模型的各层&#xff0c;按照各层定义的运算规则进行计算&#xff0c;最终得到模型预测输出的过程。 单向的信息流动&#xff0c;不涉及模型参数的更新。 助于思考的…

多模态大语言模型arxiv论文略读(八十七)

MG-LLaVA: Towards Multi-Granularity Visual Instruction Tuning ➡️ 论文标题&#xff1a;MG-LLaVA: Towards Multi-Granularity Visual Instruction Tuning ➡️ 论文作者&#xff1a;Xiangyu Zhao, Xiangtai Li, Haodong Duan, Haian Huang, Yining Li, Kai Chen, Hua Ya…

记录将网站从http升级https

http与https 你知道http是什么吗&#xff0c;那你知道https吗&#xff1f;在进行升级之前我们应该都听说http不安全&#xff0c;要用https&#xff0c;那你知道这是为什么吗&#xff1f; 什么是http&#xff1f; HTTP 是超文本传输协议&#xff0c;也就是HyperText Transfer…

免费PDF工具-PDF24V9.16.0【win7专用版】

【百度】https://pan.baidu.com/s/1H7kvHudG5JTfxHg-eu2grA?pwd8euh 提取码: 8euh 【夸克】https://pan.quark.cn/s/92080b2e1f4c 【123】https://www.123912.com/s/0yvtTd-XAHjv https://creator.pdf24.org/listVersions.php

一周学会Pandas2 Python数据处理与分析-Pandas2数据合并与对比-pd.concat():轴向拼接

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在数据分析中&#xff0c;数据往往分散在多个来源&#xff08;如不同文件、数据库表或API&#xff09;&#xff0c;需…

安卓原生兼容服务器

安卓原生兼容服务器的定义 安卓原生兼容服务器‌指基于Android系统内核和服务框架构建的服务器环境&#xff0c;能够在不依赖第三方适配层的情况下&#xff0c;直接运行符合Android API规范的服务程序&#xff0c;并满足与其他软硬件组件的协同工作需求。其核心特征体现在以下…

优化用户体验:拦截浏览器前进后退、刷新、关闭、路由跳转等用户行为并弹窗提示

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 需求 首先列举一下需要拦截的行为&#xff0c;接下来我们逐个实现。 浏览器前进后退标签页刷新和关闭路由跳转 1、拦截浏览器前进后退 这里的实现是核心&#xff0c;涉及到大…