IPython

Table of Contents

1 Commands

通常%用于测试单行语句,而%%用于块语句


  • _iX X是输入的行号,这个变量表示第X个输入的字符串
  • _X 第X个输出的内容

  • %time: Time the execution of a single statement
  • %timeit: Time repeated execution of a single statement for more accuracy
  • %prun: Run code with the profiler
  • %lprun: Run code with the line-by-line profiler # %load_ext line_profiler
  • %memit: Measure the memory use of a single statement # %load_ext memory_profiler
  • %mprun: Run code with the line-by-line memory profiler

  • `!shell-command` 用来执行外部shell命令,同时可以将结果传给变量比如 `x = !pwd`.
  • %quickref 显示notebook命令
  • %history -n 1-4 历史命令1-4条
  • %debug 进入调试模式,如果需要自动打开可以使用%pdb on
  • %save filename n1-n2 保存历史上执行的命令,按照编号存取
  • %store output_variable > output.txt 把变量内容输出到文件
  • %logstart/off/on/stop 可以保存ipython下面所有执行的命令
  • %reset 清除当前session下面所有的变量
  • %xdel variable 清除当前sesison的某个变量
  • %bookmark <name> <dir> / cd <name> / %bookmark -l 书签系统
  • %who/%whos/%who_ls 列举当前环境下所有的变量
  • %cpaste 格式化粘贴代码
  • %page variable 通过分页器打印变量

`%%cython` 用来编译cython代码, 而且必须放在在cell第一行。调用前用 ` %load_ext cython` 加载cython模块。

`@numba.jit` 使用numba jit来加速数值运算。

2 Biolerplate

import pandas as pd
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
np.set_printoptions(precision=4)
# plt.style.use('fivethirtyeight')
sns.set()
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.rcParams['figure.figsize'] = (15, 5)
# 或者使用下面这个方式
plt.rc('font', **{'sans-serif': ['SimHei']})
plt.rc('axes', **{'unicode_minus': False})
plt.rc('figure', **{'figsize': (10, 10)})
pd.set_option('display.width', 5000)
pd.set_option('display.max_columns', 60)

3 Remote Notebook

UPDATE @ 2016-08-26: 发现下面方法可以用来解决remote ipython notebook的问题.

  • 首先在目标机器dev上启动ipython notebook. `jupyter notebook –no-browser –port=8888`
  • 然后在本机上选择绑定端口比如1000. `ssh -L "*:10000:dev:8888" dev`

之后就可以在本地使用 `http://localhost:10000` 来访问远端的notebook了.