IPython 是一个强大的交互式 Python 环境,提供了许多高级功能和快捷键,以下是非常详细的 IPython 使用技巧整理,覆盖了每个知识点(但本文是基于有一定基础的同学看的):
IPython的使用基础:
一、安装与基本操作
- 安装Anaconda
- 建议直接下载安装Anaconda,其中包含丰富的库,以及我们需要使用的IPython。所有的操作都一步到位,具体从Pycharm调用Anaconda可参考百度。
- 新建工程文件
- 选择Jupyter Notebook,即IPython Notebook file,文件的后缀为.ipynb。
- 编辑代码
- 在每个模块化的Cell中编写代码,单步调试,反复论证。
- 最终调试通过后,点击重置符号Restart kernel,按顺序最后过一遍程序,达到重新编号同时检验代码先后顺序的作用。
- 最后将所有代码汇总在一个.py文件中,作为最终的成果。
- 当程序全部调通后,将其放入checkpoint文件夹中作为最终的notebook文件,以供分享和展示。
二、快捷键与常用命令
- Tab键
- 用于当前工作目录存在的文件和目录补全。
- 符号?和??
- ?:只能放在名字最后,查看详细信息。
- ??:可以查看源代码(如果有)。
- 通配符*
- 可以放在名字中间,结合?一起,补全功能比tab键还强大。
- 快捷键(MacOS)
- Ctrl+C:任何时候停止ipython运行;清除当前命令行所有输入。
- bookmark:永久设置某些目录为某个名字,cd名字,直接跳转,非常好用。
- ls, cd, pwd:列出当前目录文件,切换目录,显示当前目录(由于编码问题对中文不友好,有中文时用!cd代替)。
- hist和dhist:hist显示历史命令,很多可选参数,可用于制作命令说明;dhist显示历史目录,用cd-n可以直接跳转。
- run:在ipython环境运行.py脚本,运行完后变量和函数都在当前环境,可直接使用。
- log系列:将ipython交互过程记录下来,logstart开始记录、logstop停止、logoff暂停, logon继续,这个系列用于制作可以下次可以执行.py。
- time和timeit:测试单行命令执行时间,timeit执行次数更多,给出结果更精确。
- prun:测试函数调用的执行时间,按照函数汇总。
- lprun:测试函数内单行执行时间,ipython下运行!ipythonprofilecreate创建默认配置文件,看好创建的目录,在ipython_config.py 内加一行c.TerminalIPythonApp.extensions=['line_profiler'] ,之后用!pip install line_profiler安装这个包,重启ipython就可以应用这个magic命令了。
三、在Pycharm中使用IPython
- 安装IPython
- 安装IPython后,查看Pycharm设置,确保Console的通用设置Use IPython if available选项打勾。
- 打开Python Console窗口
- Tools- Python Console,屏幕下方就可见IPython的交互式界面。
- 运行.ipynb文件
- 选中代码行,Alt+Shift+E。
- 或选中,鼠标右键-Execute Line in Console。
四、其他技巧
- 表示在选定In[]下增加一行输入
- (Ctrl+X)表示剪切(而ipython没有删除,所以这个很常用)。
- (Ctrl+C)复制之后的运行In[index]会增加。
- (Ctrl+V)粘贴在所选代码的下一行。
- 表示将输入序号重置,这样就相当于一个Notebook文件中有两个分别独立的文件,之前的变量定义,库的导入,对重置后的代码无效,所以强烈建议不要用,但对于另起炉灶的还是可以考虑,这样就和之前的变量没有关系了。
- 同时右键Split Cell很有用,可以拆分Cell,对应的合并也是一样。
- 关于文本标题的编辑以及markdown
- 主要用于说明注释,这里就不详细说明了。
五、通过浏览器打开IPython Notebook
- 设置IPython Notebook的默认URL
- 可以通过浏览器来打开这个链接,在设置对话框中的IPython Notebook中指定了其默认的URL。
IPython的使用技巧整理详细说明:
一、基础使用
-
启动 IPython
- 在命令行输入
ipython
或ipython3
启动。 - 可以添加参数,如
--profile=default
选择特定的配置文件。
- 在命令行输入
-
退出 IPython
- 使用
quit()
或Ctrl+D
。
- 使用
二、内省和查询
?
:在命令行输入?
可以显示 IPython 的简介。object?
:在变量后加上?
可以显示变量的详细信息,包括类型、值、文档字符串等。object??
:在变量后加上??
可以显示对象的源代码(如果可用)。
三、历史命令和自动补全
-
历史命令
- 使用上下箭头键浏览历史命令。
%history
或hist
查看历史命令列表。%history -n <number>
执行历史命令列表中的特定命令。%history -g <pattern>
搜索历史命令中匹配模式的命令。
-
自动补全
- 在输入函数、变量或模块名时,按
Tab
键自动补全。 - 如果有多个补全选项,连续按两次
Tab
键列出所有选项。 - 可以使用
%config IPCompleter.greedy=True
启用贪婪自动补全,即尽可能多地补全。
- 在输入函数、变量或模块名时,按
四、魔法命令
-
行魔法
- 以
%
开头,只对当前行有效。 - 常用的行魔法包括:
%run script.py
:运行外部 Python 脚本。%timeit
:测量代码执行时间。%matplotlib inline
:在笔记本中直接显示 matplotlib 图形。%load_ext extension_name
:加载扩展模块。%alias alias_name command
:创建别名。
- 以
-
单元格魔法
- 以
%%
开头,对整个单元格有效。 - 常用的单元格魔法包括:
%%timeit
:测量整个单元格的执行时间。%%writefile <filename>
:将单元格中的内容写入文件。%%bash
:在单元格中执行 Bash 命令。
- 以
五、快捷键
-
光标移动
Ctrl+a
:移到行首。Ctrl+e
:移到行尾。Ctrl+b
或左箭头:光标左移。Ctrl+f
或右箭头:光标右移。Ctrl+p
或上箭头:上一条历史命令。Ctrl+n
或下箭头:下一条历史命令。
-
字符操作
Ctrl+d
:删除字符。Ctrl+Backspace
:删除前一个单词。Ctrl+k
:剪切当前行。Ctrl+y
:粘贴。
-
命令编辑
Ctrl+a
:全选。Ctrl+c
:复制。Ctrl+v
:粘贴。Ctrl+x
:剪切。Ctrl+z
:撤销。Ctrl+Shift+z
:重做。
-
其他快捷键
Ctrl+l
:清屏。Ctrl+r
:反向搜索历史命令。Ctrl+s
:保存当前工作区。Ctrl+Enter
:运行当前单元格。Shift+Enter
:运行当前单元格并跳到下一个单元格。
六、与操作系统交互
- 使用
!
前缀执行系统命令,如!ls
列出当前目录文件。 - 可以将系统命令的输出赋值给变量,如
output =!ls
。 - 使用
%cd
魔法命令切换当前工作目录。
七、数据分析和可视化
- 结合
pandas
、numpy
、matplotlib
等库进行数据分析和可视化。 - 可以使用
%matplotlib notebook
或%matplotlib inline
进行交互式绘图。 - 使用
%pylab
魔法命令导入常用的科学计算库。
八、代码调试
- 使用
%pdb
魔法命令在代码执行出错时自动启动调试器。 - 使用
%debug
魔法命令进入调试器。 - 在调试器中,可以使用
p
命令打印变量的值,n
命令执行下一行代码,c
命令继续执行直到下一个断点。
九、自定义配置
- 通过配置文件(如
ipython_config.py
)自定义 IPython 的行为。 - 可以设置快捷键、魔法命令、启动选项等。
- 使用
%config
魔法命令查看和修改当前配置。
十、扩展模块
- 使用
%load_ext
加载扩展模块,如%load_ext autoreload
。 - 扩展模块可以提供额外的功能和魔法命令。
十一、交互式绘图
- 使用
%matplotlib notebook
或%matplotlib inline
进行交互式绘图。 - 可以使用
plt.plot()
、plt.scatter()
等函数绘制图形。 - 使用
plt.show()
显示图形。
十二、并行计算
- 使用
%parallel
魔法命令进行并行计算。 - 可以使用
@parallel
装饰器将函数并行化。