文章来源于Python大数据分析,作者朱卫军
什么是IPython?可能很多人已经在用,却不知道它到底是什么。根据维基百科的解释:
IPython是一种基于Python的交互式解释器,提供了强大的编辑和交互功能。
IPython拥有:
满足你各种需求的交互式shell
火爆数据科学社区的Jupyter内核(供Jupyter Notebook使用)
对交互式数据可视化和GUI工具的完美支持
简单易用的高性能并行计算工具
IPython中的‘I’即代表交互的意思,所以IPython提供了丰富的工具,能更好地与python进行交互。
大家经常遇到的魔法命令,就是IPython的众多功能之一。
本文梳理IPython的50个用法,供Python爱好者参考。
注:前面说过IPython提供了jupyter内核,所以Jupyter Notebook是一个基于浏览器的IPython shell,支持IPython的所有功能,以下内容均在Jupyter Notebook环境中测试。
?
打印IPython简介在IPython中直接输入?
,可以打印出IPython的功能介绍
object ?
内省功能在变量后面加上?
,可以打印出该变量的详细信息。例如图中一个列表对象,打印出该对象的类型、长度等信息。
object ??
内省功能??
和?
功能相似,不过??
还可以查看函数或模块对象的源代码。
history
历史命令在IPython中,执行history
或hist
命令能够查看历史输入。
! shell_command
执行shell命令shell (windows里叫作cmd)表示使用文本与计算机进行交互的方式,在IPython中,shell命令前加上感叹号!
(英文输入法)就可以直接执行。如图使用ping检测百度网址。
魔法命令分为两种,一种是line magics,另外一种cell magics。Line magic是通过在前面加%,表示magic只在本行有效。Cell magic是通过在前面加%%,表示magic在整个cell单元有效。
%run
运行脚本在IPython会话环境中,py文件可以通过%run
命令当做Python程序来运行,输入%run 路径+文件名称
即可。如图,e盘中有一py脚本test.py,在IPython中执行。
%timeit
测量代码运行时间IPython使用魔法命令%timeit
来测量单行代码的运行时间。
%%timeit
测量代码运行时间%pwd
显示工作路径%matplotlib inline
显示图像在notebook中绘制图像时,使用%matplotlib inline
命令可以将图表直接嵌入到notebook中,方便查看。
%conda
安装第三方库%conda install pkgs
命令用于在IPython中安装python第三方库。
%pylab
交互式计算%pylab
魔法命令可以使numpy和matplotlib中的科学计算功能生效,这些功能被称为基于向量和矩阵的高效操作,交互可视化特性。它能够让我们在控制台进行交互式计算和动态绘图。
%quickref
查看参考%quickref
用来查看IPython的特定语法和魔法命令参考。
%ls
显示目录内容*
%cd
修改目录%cd
命令可以修改当前工作目录。
_
打印前输出结果使用一个下划线 _
获取前一个输出结果,它是个变量,实时更新的。使用两个下划线 __
可以获取倒数第二个输出,使用三个下划线 ___
获取倒数第三个输出(没有输出的命令行不计入在内,只支持前三个输出结果)。
;
抑制输出%debug
交互式调试器%debug
命令支持从最新的异常跟踪的底部进入交互式调试器。在ipdb调试模式下能访问所有的本地变量和整个栈回溯。使用u和d向上和向下访问栈,使用q退出调试器。在调试器中输入?可以查看所有的可用命令列表。
%pdb
交互式调试器%pdb
同样用于启动交互式调试器,不过支持对所有的异常进行调试。你需要事先启动%pdb
命令,之后对每一个异常都会进行调试。
%run -d
交互式调试器%pycat
语法高亮%pycat filename
用语法高亮显示一个python文件(不用加.py后缀名)。
%load
加载代码%macro
定义宏%macro taskname n1 n2...
用来定义宏,并给宏命名,执行指定的代码行。执行name就是执行n1 n2...这些代码。
%notebook
导出notebook%notebook path
用于导出当前notebook内容到指定ipynb文件中。
%pdef
打印构造信息%pdoc
打印文档%precision
浮点数精度%precision
命令用来设置浮点数精度,可添加具体参数,无参数则默认精度。
%xdel
删除变量%xdel
命令用于删除变量,并尝试清楚其在IPython中的对象上的一切引用。
%who
显示变量%who
命令用于显示当前所有变量,你也可以指定显示变量的类型。
%who
显示变量%save
保存cell%save path n1 n2..
命令用于将指定cell代码保存到指定的py文件中。
%reset
重置%reset -f
命令用于删除定义的所有变量,如果不指定参数-f
,则需要确认后再重置。
%rerun
执行前代码%rerun
命令用于执行之前的代码,可以指定历史代码行,默认最后一行。
%%HTML
渲染HTML%%javascript
运行JavaScript%%javascript
命令用于运行含有JavaScript代码的cell。
%%latex
渲染LaTeX%%latex
命令用于将LaTeX语句渲染为公式,LaTeX是一种基于ΤΕΧ的排版系统。
%%markdown
渲染markdown%%markdown
命令用于将markdown文本渲染为可视化输出。
%%writefile
写入文件%%writefile
命令用于将单元格内容写入到指定文件中,文件格式可为txt、py等。
%bookmark
保存书签%bookmark
命令能够保存常用目录的别名,以便实现快速跳转,书签能够持久化保存。
%paste
粘贴代码块当你使用 IPython 解释器时,有件事经常让你头疼,那就是粘贴多行代码块可能会导致不可预料的错误,尤其是其中包含缩进和解释符号时。
使用%paste
命令能够直接执行剪切板中的python代码块。
%magic
获取魔法命令列表In
和Out
常会看到IPython 中的In[1]:
/Out[1]:
形式的提示,它们并不仅仅是好看的装饰形式,还是包含输入、输出的变量。
In 对象是一个列表,按照顺序记录所有的命令。
Out 对象不是一个列表,而是一个字典,它将输入数字映射到相应的输出(如果有的话)
%xmode
控制异常jupyter qtconsole 是ipython团队基于qt框架开发的一个GUI控制台。
它具有富文本编辑功能,既能够在里面实现内嵌图片、多行编辑、语法高亮等。
快捷键 | 动作 |
---|---|
Ctrl + a | 将光标移到本行的开始处 |
Ctrl + e | 将光标移到本行的结尾处 |
Ctrl + b(或左箭头键) | 将光标回退一个字符 |
Ctrl + f(或右箭头键) | 将光标前进一个字符 |
快捷键 | 动作 |
---|---|
Backspace 键 | 删除前一个字符 |
Ctrl + d | 删除后一个字符 |
Ctrl + k | 从光标开始剪切至行的末尾 |
Ctrl + u | 从行的开头剪切至光标 |
Ctrl + y | yank(即粘贴)之前剪切的文本 |
Ctrl + t | transpose(即交换)前两个字符 |
快捷键 | 动作 |
---|---|
Ctrl + p(或向上箭头) | 获取前一个历史命令 |
Ctrl + n(或向下箭头) | 获取后一个历史命令 |
Ctrl + r | 对历史命令的反向搜索 |
-END-
备注:公众号菜单包含了整理了一本AI小抄,非常适合在通勤路上用学习。
往期精彩回顾
适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(第一部分)备注:加入本站微信群或者qq群,请回复“加群”获取一折本站知识星球优惠券,请回复“知识星球”
喜欢文章,点个在看