IPython Basics

首先比一般的python shell更方便一些
比如某些数据结构的pretty-printed,比如字典
更方便的,整段代码的copy,执行

并且可以兼容部分system shell , 比如目录浏览,文件操作等

 

Tab Completion

这个比较方便,可以在下面的case下,提示和补全未输入部分

a. 当前命名空间中的名字

b.对象或模块的属性和函数

c. 文件路径

 

Introspection, 内省

?,在标识符前或后加上,显示出对象状况和docstring

 

??,显示出source code

?,在命名空间中search

比如用tab completion,对于numpy太多属性和函数,想用通配符*去search和过滤,但tab completion是不支持的,这时候用?

 

The %run Command

可以直接执行一个python脚本,

In [550]: %run ipython_script_test.py

如果脚本需要使用当前shell环境中定义的变量,使用

%run -i

 

Executing Code from the Clipboard

直接把整段代码,copy过来会有问题,需要加上%paste 或 %cpaste

执行%paste,会自动读取Clipboard的内容作为代码段,并执行,

%cpaste,可以随意粘帖任意多的代码, 最终用ctrl-d来结束输入,并执行

 

Keyboard Shortcuts

 

Magic Commands

IPython中定义的一些特殊命令,一般以%开头

如果以%%表示cell模式,即多行,比如%%timeit,可以测试多行的执行时间

使用%quickref or %magic,可以看到所有magic commands的介绍

如果没有冲突的情况下,不用加%,也是可以的(这个feature可以用%automagic来开关)

 

Matplotlib Integration and Pylab Mode

$ ipython --pylab

 

Using the Command History

a. 搜索history
这是用的最多的,用上下键来查找,并且上下键是支持,增量的,即输入开头,再用上下键搜索
但是有时候,只记得部分命令,不一定是开头,比如像搜索包含time的history命令,用ctrl+r

b. 快速引用历史的输入输出

用的比较多的是输出,_ (one underscore) and __ (two underscores) 分别表示,前一个,前两个命令的输出
也可以用_行号,来引用特定行的输出

引用特定行的输入,是_i行号

还可以用exec来执行特定的行

c. 整个执行过程记录到log

%logstart,%logstop

 

Interacting with the Operating System

 

 

Software Development Tools

IPython支持Debug, %debug, 或%pdb,我一般不用debug,所以ignore

 

Timing Code: %time and %timeit

time是运行一次,而timeit是运行多次求平均值

 

Basic Profiling: %prun and %run -p

python中提供cProfile来进行performance分析
而IPython提供更方便的接口,
%prun 或 %run –p
比如,
%prun -l 7 -s cumulative run_experiment()
%run -p -s cumulative cprof_example.py

都可以进行profile,找出其中比较耗时的代码

同时还通过插件支持Profiling a Function Line-by-Line

 

IPython HTML Notebook

ipython notebook --pylab=inline

用过,觉得真的挺酷
支持python,markdown,html,可以把整个session保存在json格式的文件里.ipynb
觉得这个尤其方便教学

简单的上传和分发.ipynb,大家都可以简单的交互的更改或学习

Python For Data Analysis -- IPython的更多相关文章

  1. 《python for data analysis》第四章,numpy的基本使用

    <利用python进行数据分析>第四章的程序,介绍了numpy的基本使用方法.(第三章为Ipython的基本使用) 科学计算.常用函数.数组处理.线性代数运算.随机模块…… # -*- c ...

  2. 学习笔记之Python for Data Analysis

    Python for Data Analysis, 2nd Edition https://www.safaribooksonline.com/library/view/python-for-data ...

  3. Python for Data Analysis 学习心得(一) - numpy介绍

    一.简介 Python for Data Analysis这本书的特点是将numpy和pandas这两个工具介绍的很详细,这两个工具是使用Python做数据分析非常重要的一环,numpy主要是做矩阵的 ...

  4. 数据分析---《Python for Data Analysis》学习笔记【04】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  5. 数据分析---《Python for Data Analysis》学习笔记【03】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  6. 数据分析---《Python for Data Analysis》学习笔记【02】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  7. 数据分析---《Python for Data Analysis》学习笔记【01】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  8. 《python for data analysis》第十章,时间序列

    < python for data analysis >一书的第十章例程, 主要介绍时间序列(time series)数据的处理.label:1. datetime object.time ...

  9. 《python for data analysis》第九章,数据聚合与分组运算

    # -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...

随机推荐

  1. VMWare Workstation的命令

    1 Ctrl + Alt + <-/->  多个操作系统的切换

  2. codeforces Gym 100187J J. Deck Shuffling dfs

    J. Deck Shuffling Time Limit: 2   Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/pro ...

  3. Source insight怎样恢复默认界面布局 窗口嵌入

    先关闭,然后在c盘的文档的Source Insight\Settings目录里面,将CF3文件剪切到别的地方,再打开 不过有些其它设置也会丢失,需要重新设置,参见Source_Insight破解版下载 ...

  4. Android Studio导入Fresco

    大概一周之前,Facebook开源了专为Android系统定制的图片下载缓存工具,当天该消息就上了各大技术论坛网站的头条,也成为了各个技术群里讨论的最主要的话题.也就在当天stay4it的QQ群里面就 ...

  5. struts2总结四:Action与Form表单的交互

    struts2 Action获取表单数据的方式有三种:1.通过属性驱动的方式.2.模型驱动方式.3.使用多个model对象的属性. 1.通过属性驱动式 首先在jsp里面编写form表单的代码如下: & ...

  6. zoj 1097 普吕弗序列

    题目大意:输入一颗无根树的括号序列,求这棵树的普吕弗序列. 分析思路: 1)普吕弗序列,可以参考维基百科,其做法是找出树中编号最小的叶子节点,并将此叶子节点及边删除,并输出其邻接的节点标号: 2)递归 ...

  7. bzoj1027 [JSOI2007]合金

    1027: [JSOI2007]合金 Time Limit: 4 Sec  Memory Limit: 162 MBSubmit: 2671  Solved: 703[Submit][Status][ ...

  8. BZOJ3641 : 货车运输

    若一条边的v小于等于u,则贡献为l*w/v,否则贡献为l*w/u 将边按v从小到大排序,将询问按u从小到大排序 用树链剖分维护链上和,val[0]表示第一种情况下的贡献,val[1]表示第二种情况下的 ...

  9. 自己的一份Spring的xml配置文件

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  10. webapp开发经验总结

    webapp开发的大趋势之下,本人收集整理了一写关于webapp开发的经验,欢迎大家补充指正. 关于link <link rel="apple-touch-startup-image& ...