Python技巧-magic命令


在IPython和Jupyter Notebook 高效magic命令。
magic命令:Jupyter Notebook中的特殊命令,使用%符号和要运行的命令一起使用。

%%time

  1. 功能:用于执行并反馈将代码运行一次后所花费的时间。输出CPU time(代码实际消耗的CPU运行时间)和Wall time(墙上挂钟时间, 代码从开始到结束所花费的,实际感受的运行时间)。
  2. 使用条件:在IPython和Jupyter Notebook中,必须放在测试单元代码的第一行,在%%time换行后,输入想要计时的一段或多段代码。
  3. 用途:
  • 性能分析:提供代码运行时间信息。
  • 代码执行时间评估:通过查看输出CPU时间和墙上时间,进而更全面的了解代码的运行时间。CPU 时间用于分析代码本身消耗的处理器资源,而墙上时间则反映了用户实际感受到的耗时。

%time

  1. 功能:将会给出当前行的代码运行一次后所花费的时间。输出Wall time(墙上时间, 代码从开始到结束所花费的实际时间)和代码运行结果。
  2. 使用条件:在IPython和Jupyter Notebook中,放在测试单元代码的第一行,在%time同行空格后,输入想要计时的一段或多段代码。
  3. 用途:检查代码运行时间并输出代码运行结果。
  4. 注意:也可以使用time库(import time),利用time.localtime(time.time()),返回当前时间的时间戳方法来计算时间间隔。

eit -r R -n N

  1. 功能:将执行代码语句运行R次,每次N遍,再对N * R 遍的运行结果取平均从而得到运行一遍代码的时间。
  2. 使用条件:在IPython和Jupyter Notebook中,必须放在测试单元代码的第一行,在%%timeit换行后,输入想要计时的一段或多段代码。如果放置在同行,则同行代码运行但不计时,从第二行才开始计时。
  3. 用途:检查代码运行时间并输出代码运行结果。
  4. 注意:%timeit的运行比%time执行时间快,在于%timeit内有额外的机制,用于防止系统调用(System calls)影响程序执行的时间结果。

%prun:

  1. 功能:宏观性能分析工具,用于计算函数或程序执行每个函数需要多长时间。
  2. 使用条件:在IPython和Jupyter Notebook中,放在测试单元代码的第一行,在%prun同行空格后,输入想要计时的一段或多段代码。结果返回列表,列表中是每个内部函数被调用次数、每次被调用时间、函数所有运行的累积时间。

%lprun:

  1. 功能:微观性能分析工具,逐行计算程序性能,从而判断哪一行执行时间最长,进而优化那部分程序。
  2. 使用条件:需要安装第三方库: pip install line_profiler,在IPython中加载套件后,执行%lprun来计算函数的逐条性能。

%mprun:

  1. 功能:使用单个语句执行的内存计算工具和代码一起执行。
  2. 使用条件:限制在独立模块上,不能应用在notebook上运行。

%memit:

  1. 功能:计时单个语句占用的内存空间。
  2. 使用条件:需要安装第三方库: pip install memory_profiler,在IPython中加载套件后,执行%memit来计算函数的逐条性能,从peak memory中。

%who

  1. 功能:在jupiter Notebook中显示所有可用变量。
  2. 使用条件:单独一行。

%history or %hist

  1. 功能:在jupiter Notebook中查看活动日志,并跟踪已经做过的内容。
  2. 使用条件:单独一行。

%pinfo

  1. 功能:在jupiter Notebook中查看对象、包的详细信息(包括类型、长度、文件地址等)。
  2. 使用条件:单独一行。pinfo 包名或对象名。

%%writefile

  1. 功能:在jupiter Notebook中用于在当前目录中,保存复用函数到Python文件中。
  2. 使用条件:单独一行,文件开头。%%writefile 文件名.py。

%pycat

  1. 功能:用于在当前目录中,读取Python文件中的复用函数到jupiter Notebook中,在新弹出窗口中显示文件中的所有代码。
  2. 使用条件:%pycat 文件名.py

%quickref

  1. 功能:在jupiter Notebook中,详细解释所有jupiter Notebook中存在的所有magic命令。
  2. 使用条件:单独一行 %quickref。

Jupiter Notebook和Pycharm使用差异:

  1. 命令中的数据集是否需要从网络中下载,还是直接运行本地数据集:
  • Jupiter Notebook:在本地浏览器环境中使用,网络(例如Github)数据集和本地数据集都可以正常使用。
  • Pycharm:除非设置好代理和打开防火墙,否则只能使用本地数据集,使用网络数据集会因为连接超时报错。

参考文献:

[1] 9个可以提高Jupyter Notebook开发效率的魔术命令


文章作者: 青山生柳
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 青山生柳 !
 上一篇
Git使用指南 Git使用指南
Git使用指南,主要介绍版本控制工具历史、Git安装配置、基本概念、常用命令字典和Git分支管理。
2025-09-13
下一篇 
专利基础知识整理 专利基础知识整理
专利基础知识整理,主要介绍知识产权概念、类型、专利权特点、授予专利条件、挖掘专利技巧、专利价值判断、等同原则四要素、编写专利技巧和常用专利检索网站等。
2025-09-12
  目录