Python For Data Analysis -- IPython
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的更多相关文章
- 《python for data analysis》第四章,numpy的基本使用
<利用python进行数据分析>第四章的程序,介绍了numpy的基本使用方法.(第三章为Ipython的基本使用) 科学计算.常用函数.数组处理.线性代数运算.随机模块…… # -*- c ...
- 学习笔记之Python for Data Analysis
Python for Data Analysis, 2nd Edition https://www.safaribooksonline.com/library/view/python-for-data ...
- Python for Data Analysis 学习心得(一) - numpy介绍
一.简介 Python for Data Analysis这本书的特点是将numpy和pandas这两个工具介绍的很详细,这两个工具是使用Python做数据分析非常重要的一环,numpy主要是做矩阵的 ...
- 数据分析---《Python for Data Analysis》学习笔记【04】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 数据分析---《Python for Data Analysis》学习笔记【03】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 数据分析---《Python for Data Analysis》学习笔记【02】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 数据分析---《Python for Data Analysis》学习笔记【01】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 《python for data analysis》第十章,时间序列
< python for data analysis >一书的第十章例程, 主要介绍时间序列(time series)数据的处理.label:1. datetime object.time ...
- 《python for data analysis》第九章,数据聚合与分组运算
# -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...
随机推荐
- poj 3281 最大流+建图
很巧妙的思想 转自:http://www.cnblogs.com/kuangbin/archive/2012/08/21/2649850.html 本题能够想到用最大流做,那真的是太绝了.建模的方法很 ...
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
android SQLite使用SQLiteOpenHelper类对数据库进行操作 原文: http://byandby.iteye.com/blog/835580
- Hark的数据结构与算法练习之鸽巢排序
算法说明 鸽巢排序是分布排序的一种,我理解其实鸽巢就是计数排序的简化版,不同之处就是鸽巢是不稳定的,计数排序是稳定的. 逻辑很简单,就是先找出待排数组的最大值maxNum,然后实例一个maxNum+1 ...
- sqlserver2008使用设置sa用户登录步骤
1.打开sql server 2008,使用windows身份验证. 2.成功登录后,点击安全性->登录名,“sa”右键选择属性,设置密码,勾选“强制密码实施策略”. 3.然后选择属性页下的“状 ...
- 浅谈MySQL索引背后的数据结构及算法
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- BZOJ3750 : [POI2015]Pieczęć
枚举第一个位置,然后暴力检验. #include<cstdio> #define N 1010 int T,n,m,a,b,x,y,i,j,k,q[N*N][2],cnt;char s[N ...
- Activity 生命周期及其栈管理方式
Activity 生命周期 Android 系统用栈的形式管理 Activity , 当新的 Activity 被创建是, 会被放置到栈顶, 这个 Activity 会进入到运行状态, 而前一个 Ac ...
- HDU 4604 Deque(最长上升子序)
题目链接 本来就对N*log(N)算法不大会....然后各种跪了,求出最长不下降+最长不上升-最少相同元素.求相同元素,用二分求上界搞的.代码里4个二分.... #include <cstdio ...
- Google Code Jam 2010 Round 1C Problem B. Load Testing
https://code.google.com/codejam/contest/619102/dashboard#s=p1&a=1 Problem Now that you have won ...
- C#获取机器码(转)
/// <summary> /// 机器码 /// </summary> public class MachineCode { /// ...