Python数据分析(一): ipython 技巧!
不一定非得使用Jupyter Notebook,试试ipython命令行
安装 ipython
我只试过Windows 10环境下的。
1.安装python安装包之后,应该就有ipython了。
2.安装anaconda,这个做机器学习或数据分析要是需要的,这个装完之后,也会有ipython。(建议使用anaconda,国内镜像地址:https://mirrors.tuna.tsinghua.edu.cn/)
启动ipython
1.命令行输入ipython即可启动。
2.或者找一下快捷方式,也可以启动。
帮助?
1.help,python内置了help方法,相信大家都会这个。例如:help(len),然后就会显示len方法的帮助文档:
2.?,ipython独有的提供了一个快捷字符?,它也可以访问帮助文档,例如:
查看源码??
使用?? 来查看python的源码:
但是,如果源码不适用python写的(有些内置的方法使用C等语言写的),就会出现如下效果:
自动完成 Tab
Tab键在ipython中输入时可提供自动完成或浏览功能。
有时候优点像python内置的dir()函数,但强大得多。
这是L.后边点击Tab的效果。下面是再输入一个字母c之后的智能提示的效果:
提示私有属性
使用Tab默认只显示public和external属性/方法,如果想显示私有属性,那么按约定,你要先输入一个下划线_。
import的时候也可以使用Tab
通配符*
有时候tab不够用,那就使用通配符 * 。
例如:显示以Error结尾的对象:
注意后边还有个?。
*可以匹配任何字符串包括空字符串。
另一个例子,包含xxx字符串:
快捷键
导航类:
Ctrl+a,移动光标到行首
Ctrl+e,移动光标到行尾
Ctrl+b(或←),向左移动一个字符
Ctrl+f(或→),向右移动一个字符
输入类:
Backspace:删除行中前一个字符
Ctrl+d,删除行中下一个字符
Ctrl+k,从光标位置剪切到行尾。
Ctrl+u,从行首剪切到光标位置。
Ctrl+y,粘贴之前剪切的文字。
Ctrl+t,调换前两个字符的位置。
命令历史类:
Ctrl+p,前一个命令,和↑好像一样。
Ctrl+n,后一个命令,和↓好像一样。
Ctrl+r,倒序搜索。
其中Ctrl+r是挺有用的,例如:
按Ctrl+r后,输入a,就会倒序搜索之前的输入。
如果有相同的历史搜索结果的话,你可以点击多次Ctrl+r继续往前翻。
其它快捷键:
Ctrl+l,清屏
Ctrl+c,中断当前python命令
Ctrl+d,退出ipython
魔法命令
复制多行代码 %paste,%cpaste。
在ipython命令行中使用Ctrl+c复制多行代码经常会出现问题(缩进等问题),使用%paste命令,解决了这个问题。
输入%paste,然后回车,就会把你剪切盘里面的内容完美的复制进来并执行。
%cpaste,和%paste类似,但是它会提供一个交互界面,以便输入多个代码块。
执行外部代码 %run
直接举例:
为代码执行计时:%timeit,%%timeit
对单行代码的执行计时:%timeit:
对多行代码执行计时:%%timeit:
魔法命令的帮助文档:
使用%maigc,可以查看所有魔法命令及其文档。
使用%lsmagic,可以列出所有的魔法命令。
输入输出历史
使用ipython shell,您一定对左边这些in,out特别熟悉。
但是,它们不是装饰品,它们俩是变量。
In和Out是两个变量,并且随着命令的输入,实时更新。
其中:
In是一个list,而Out是一个Dictionary。
所以可以这样查看具体的In和Out:
其中需要注意的是,并不是所有的In都有输出,例如[37]。
下划线和前一个输出
使用一个下划线 _ 来获取前一个输出结果,它是个变量,实时更新的。
使用两个下划线 __ 可以获取倒数第二个输出,使用三个下划线 ___ 获取倒数第三个输出。(没有输出的命令行不计入在内)
最多也只能使用三个下划线,超过三的话可以使用Out[X]或者_X来获取之前的输出:其中X是命令行号,不是往前数的个数。
抑制输出
有时候在输入命令后,我们不想让其输出结果,那就这样,在行的最后边加一个 ; 分号。
这样的话,第76行也就没有输出了,Out[76]就不存在了。
相关的魔法命令:%history
使用%history可以一起获取前面多个命令:
注意其参数-n后边跟的是 命令行号的区间。
Shell Commands和IPython交互
你可以在ipython中使用任何shell commands(暂时叫系统命令行的命令吧),只要在前边加一个叹号 ! 。
(其实,对于常见的shell命令,直接输入就会好用。。因为automagic属性默认是on的,详见后边)
从Shell向ipython传值
直接写个赋值表达式就可以,等号的右边是Shell命令:
注意:传进来的值的类型不是list,而是:IPython.utils.text.SList。
从ipython向Shell传值:
使用{变量名}的形式赋值:
注意:不可以使用 !cd 这个文件系统导航命令。
Shell相关的魔法命令
如果想要在ipython中进行系统导航,那么应该使用%cd这个魔法命令。
automagic
如果把automagic属性设置为on,那么魔法命令前边就不需要%这个符号了。
默认automagic是on的,你可以输入automagic,那么它就会在on/off之间切换。
因为魔法命令包含了很多常见的shell命令,例如%cd,%pwd,%ls等等等等。所以默认情况下直接输入常见的shell命令就会好用。
Exception显示的详细程度
如果解释器击中异常的时候,可以在traceback中查看异常信息。
使用%xmode可以控制异常信息的详细程度:
%xmode 只有一个参数,后选项从简到繁是 Plain,Context,Verbose。我的电脑默认是Verbose。
Debugging
%xdebug 魔法命令。
在发生异常后,输入%xdebug,会进入debug模式ipdb。在这里输入变量可以查看变量的值,也可以执行python命令!
如果你想在发生任何异常的时候就进入debug模式,那么可以把pdb设置为on:
此外,如果你想在运行外部脚本的时候直接进入debug模式,那么就应该输入这个命令:
%run -d。
部分Debug命令(ipdb模式下):
l(ist),显示在文件中的当前位置。
h(elp),帮助
q(uit),退出Debugger和程序。
c(ontinue),退出Debugger,继续执行程序。
n(ext),执行程序的下一步
<enter>,重复上一个命令
p(rint),打印变量
s(tep),进入子程序
r(eturn),从子程序跳出
分析(Profiling)和计时模式
%time,适用于对单个长时间运行的表达式的程序计时。
%timeit,适用于对循环类的单行程序计时,它更准确。
注意:%timeit的结果通常比%time更快。
%prun,使用分析器运行代码
此外,还可以安装第三方分析工具,例如%lprun(逐行分析),%memit(单个表达式内存分析),%mprun(逐行内存分析)等等。
下一篇文章,写一下Numpy的使用技巧
Python数据分析(一): ipython 技巧!的更多相关文章
- Python数据分析(二): Numpy技巧 (1/4)
In [1]: import numpy numpy.__version__ Out[1]: '1.13.1' In [2]: import numpy as np
- Python数据分析(二): Numpy技巧 (2/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
- Python数据分析(二): Numpy技巧 (3/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
- Python数据分析(二): Numpy技巧 (4/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 第一部分: ht ...
- python数据分析之ipython
在用python进行数据分析的时候,需要提前安装如下几个库: Numpy:是python进行科学计算的科学包 pandas:提供了能够快速便捷地处理结构化数据的大量数据结构和函数 matplotlib ...
- 【Python数据分析】IPython基础
一.配置启动IPython 打开cmd窗口,在dos界面下输入ipython,结果报错了!!! 出现这个问题是由于环境变量未配置(前提:已经安装了ipython),那么接下来配置环境变量 我的电脑→右 ...
- Python数据分析(二): Pandas技巧 (1)
第一部分: ipython http://www.cnblogs.com/cgzl/p/7623347.html 第二部分: numpy http://www.cnblogs.com/cgzl/p/7 ...
- Python数据分析(二): Pandas技巧 (2)
Pandas的第一部分: http://www.cnblogs.com/cgzl/p/7681974.html github地址: https://github.com/solenovex/My-Ma ...
- 【Python数据分析】IPython快捷键
命令 说明 CTRL+P(或向上箭头) 后向搜索命令历史中以当前输入的文本开头的命令 CTRL+N(或向下箭头) ...
随机推荐
- org.springframework.web.context.ContextLoaderListener 解决方案
tomcat启动项目报错,没找到这个类 我直接下了一个spring-web-4.3.8.RELEASE.jar 的 jar 包方到web-inf目录下.问题解决. 补充: 如果在检查了项目 jar 环 ...
- Android进阶:七、Retrofit2.0原理解析之最简流程【上】
retrofit 已经流行很久了,它是Square开源的一款优秀的网络框架,这个框架对okhttp进行了封装,让我们使用okhttp做网路请求更加简单.但是光学会使用只是让我们多了一个技能,学习其源码 ...
- Shell编程-条件测试 | 基础篇
什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...
- HTC VIVE固定头显位置
用此方法可以限制HTC VIVE头显定位(即固定头显位置,但是视角是不固定的). UnityEngine.XR.InputTracking.disablePositionalTracking = fa ...
- Lightscape
Lightscape是一种先进的光照模拟和可视化设计系统,用于对三维模型进行精确的光照模拟和灵活方便的可视化设计. Lightscape是一个光照渲染软件,它特有的光能传递计算方式和材质属性所产生的独 ...
- 第六章 对象-javaScript权威指南第六版
什么是对象? 对象是一种复合值,每一个属性都是都是一个名/值对.原型式继承是javaScript的核心特征. 对象常见的用法有,create\set\query\delete\test\enumera ...
- [linux]CentOS安装pre-built Nginx
官方文档:https://nginx.org/en/linux_packages.html Nginx安装分为软件包安装和pre-built安装.这里使用的pre-built安装,不用自己编译. 设置 ...
- mysql数据表增删改查
http://www.runoob.com/mysql/mysql-tutorial.html 一.MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以 ...
- (lua) 基于cocos 的插入光效
具体的表现是:移动滚动容器到头部, 新增icon淡入并掉入格子,显示格子中的图标,icon放大并淡出 function UISkyResource:playActivedEffect(id) then ...
- HTML入门12
开始了解响应式图片 响应式,根据屏幕尺寸和分辨率的设备上都能良好工作以及其他特性的图片,接下来考虑怎样创建自适应得图片,专注于img元素,完成自适应. 分辨率切换,不同的尺寸 <img srcs ...