高效处理数据的Python工具基本可以完成以下几个大类的任务:
- 与外界进行交互:
读写各式各样的文件格式和数据库。
- 准备:
对数据进行清理、修整、整合、规范化、重塑、切片切块、变形等以便进行分析。
- 转换:
- 建模和计算:
- 展示:
IPython介绍
ipython
是一个python
的交互式shell
,比默认的python shell
好用得多,支持变量自动补全,自动缩进,支持bash shell
命令,内置了许多很有用的功能和函数。学习ipython
将会让我们以一种更高的效率来使用python
。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台。
IPython提供了两个主要的组件:
- 一个强大的python交互式shell
- 供Jupyter notebooks使用的一个Jupyter内核(IPython notebook)
安装IPython
pip install ipython
如果我们也想在notebook中或者在Qt console中使用IPython,我们还需要安装Jupyter,如下命令:
pip install jupyter
交互式使用IPython
IPython支持所有python的标准输入输出,也就是我们在IDLE中或者Python shell中能用的,在IPython中都能够使用,唯一的不同之处使ipython会使用In [x]
和Out [x]
表示输入输出,并表示出相应的序号。
其实后面我们会知道,In和Out是两个保存历史信息的变量
进入IPython也非常简单,直接win + R
打开运行,然后输入ipython
即可进入IPython shell交互框;
如果出现randn 找不到的情况,执行 from numpy.random import randn:
由上面可以看出Python 对象被格式化可读性更好的形式,这跟Python shell 中print的普通输出形式有着显著区别。
IPython 还可以方便的执行任意代码块和整个Python 脚本。
高级命令
1. Tab 键自动完成
在shell 中输入表达式时,只要按下Tab 键,当前命名空间中任何与已输入的字符串相匹配的变量(对象、函数等)就会被找出来,不用重复输入,提高了效率。如果再结合%run ,该功能将显著减少敲键盘的次数。
2. 内省
在变量的前面或者后面加上一个“?”就可以将有关该对象的一些通用信息显示出来。
3. %run
在IPython会话环境中,所有文件都可以通过%run 命令当做python程序来运行。
4.ctrl + C
中断正在执行的代码
5.执行剪切版中的代码
多数情况下,我们可通过ctrl+shift+V 将剪切板中的代码片段粘贴出来。
注:因为这种粘贴方式模拟的是在IPython中逐行输入代码,换行符会被处理为return 。也就是说,如果所粘贴的是一段缩进代码,且其中有一个空行,IPython就会认为缩进在空行那里结束了。当执行到缩进块后面那行代码时,就会引发一个indentationError。
此时我们应该使用%paste 和 %cpaste 这两个魔术函数。
%paste可以承载剪切板中的一切文本,并在shell中以整体形式执行。
%cpaste跟 %paste差不多,只是多了一个用于粘贴代码的特殊性提示符而已。
6. 键盘快捷键
7.异常和跟踪
如果%run 某段脚本或执行某条语句时发生了异常,IPython默认会输出整个调用栈跟踪(traceback),其中还会附上调用栈各点附近的几行代码作为上下文参考。
拥有额外的上下文代码参考是IPython相对于标准python解释器的一大优势。
上下文代码参考的数量可以通过%xmode 魔术命令进行控制,后面还会介绍如何在发生异常之后进入跟踪栈进行交互式的事后调试(post-mortem debugging).
8. 魔术命令
IPython有一些特殊命令(Magic Command),魔术命令是以百分号为前缀的命令。
作用:
1.为常见任务提供便利。
2.帮助你轻松控制IPython系统的行为。
eg. %timeit :检测任意python语句的执行时间
a = np.random.randn(100, 100)
%timeit np.dot(a, a)
魔术命令可以看做运行于Ipython系统中的命令行程序,他们大都还有一些“命令行选项”, 使用“?”即可查看其选项:
魔术命令默认是可以不带百分号使用的,只要没有定义与其同名的变量就行。这个技术叫做Automagic,可以通过%automagic 打开或者关闭。
在Ipython中,通过 %quickref 或者 %magic 可以直接访问魔术命令的文档,下面介绍几个常用的:
- %quickref 显示Ipython的快速参考
- %magic 显示所有魔术命令的详细文档
- %debug 从最新的异常跟踪的底部进入交互式调试器
- %hist 打印命名的输入(可选输出)历史
- %pdb 在异常发生后自动进入调试器
- %paste 执行剪切板中的python代码
- %cpaste 打开一个特殊提示符以便手工粘贴待执行的python代码
- %reset 删除interactive 命名空间中的全部变量/名称
- %page OBJECT 通过分页器打印输出object
- %run script.py 在Ipython 中执行一个python 脚本文件
- %prun statement 通过cProfile 执行statement,并打印分析器的输出结果
- %time statement 报告statement的执行时间
- %timeit statement 报告执行时间,对于那些执行时间非常小的代码很有用
- %who、%who_Is、%whos 显示interactive命名空间中定义的变量,信息级别/冗余度可变
- %xdel variable 删除variable ,并尝试清除其在Ipython中的对象上的一切引用
9. 基于Qt 的富GUI 控制台
作用:
为终端应用程序提供诸如内嵌图片、多行编辑、语法高亮等之类的富文本编辑功能。
安装PyQt或者 PySide
pip install PyQt5
,
启动PyQt,即可为其添加绘图功能,
ipython qtconsole –pylab = inline
10. matplotlib 集成于pylab 模式
通常我们在启动Ipython时加上 - -pylab(两个短划线) 标记来集成matplotlib
$ ipython - -pylab
11. 使用历史命令
Ipython维护者一个位于硬盘上的小型数据库,包含你执行过的每条命令的文本。
12. 输入和输出变量
忘记把函数结果赋值给变量是一件让人郁闷的事儿,Ipython 会将输入和输出的引用保存在一些特殊变量中,最近的两个输出结果分别保存在_ (一个下划线) 和 _ _ (两个下划线)变量中。
输入的文本被保存为名为 _ix 的变量中,其中x 是输出行的行号。每个输入变量都有一个对应的输出变量 _x 。
Eg. 输入完第27行后,就会产生两个新变量 _27(输出变量)和 _i27(输入变量)
13. 记录输入和输出
%logstart :在写代码的过程中,突然想要保存工作的时候,直接启动日志功能就行了。
14. 与操作系统交互
Ipython和 操作系统shell 结合的非常紧密,可以直接在Ipython 中实现标准的windows 或NUIX 命令行活动。
15. Shell命令和别名
在Ipython中,以感叹号(!)开头的命令行表示其后的所有内容需要在系统shell 中执行。此外,还可以将shell 命令的控制台输出存放到变量中,只需将 (!)开头的表达式赋值给变量即可。
在使用(!)时,Ipython还允许使用当前环境中定义的python值。只需在变量名前面加上美元符号($)即可。
16. 目录书签系统
17. 软件开发工具
参考来源:https://blog.csdn.net/qq_39362996/article/details/82892671