ipython notebook

IPython Notebook

IPython Notebook 是一种新兴的交互式数据分析与记录工具,它定义了一种全新的计算文件格式,其中包含了代码,代码说明以及每一步的计算输出(数值或图片等),也就是说这一个文件完整记录了计算过程中的所有相关信息。此外,该文件还可以嵌入网络视频,图片,LaTeX公式等众多副文本格式,实为交互计算,记录思维,传播思想的好帮手。
IPython Notebook 既是一个交互计算平台,又是一个记录计算过程的「笔记本」。它由服务端和客户端两部分组成,其中服务端负责代码的解释与计算,而客户端负责与用户进行交互。 服务端可以运行在本机也可以运行在远程服务器,包含负责运算的 IPython kernel (与QT Console的 kernel 相同) 以及一个 HTTP/S 服务器 (Tornado)。 而客户端则是一个指向服务端地址的浏览器页面,负责接受用户的输入并负责渲染输出。
千万不要小看了这个页面,首先,它几乎涵括了 QT Console 具有的全部交互式功能,如代码高亮,自动补全,实时帮助,内嵌显示绘图结果等;其次,计算过程及结果可以方便地保存为多种格式,如默认的 JSON 格式,Python 脚本以及 PDF 等;此外,借助MarkdownMathJax,用户可以在计算过程中插入详尽细致的描述,甚至以描述为主,计算为辅,从而将它当作科技类文章写作的工具。
正是由于 IPython Notebook 的灵活易用,方便传播等特点,它现已被用于可重复数据分析,课程教学,博客写作等众多领域。 当然它还可以应用在更多更广的现实场景中,那些就等着你来探索了。 下文就将介绍如何安装及使用 IPyhton Notebook,并以实例来介绍它的强大特性。
安装 Notebook

安装方案:

  • 安装某个 Python 发行套件。
  • 采用系统的包管理程序安装。
  • 从源代码编译安装。

推荐选用某个 Python 发行套件,比如Enthough Python Distribution (EPD)Python(x,y)。 这些发行套件中都包含了常用的 Python 科学计算库,如 Numpy,Scipy,IPython,Matplotlib,Pandas 等,而且都是一键安装,非常方便快捷,省去了从源码安装的众多烦恼。

下面介绍在 Linux 下安装 EPD。

  • 从 EPD网站下载免费版或学术版1,之后运行下载好的文件:
    bash ped-7.3.2-rh5-x86_64.sh -p /path/to/your/install_dir
    一路回车即可。
  • 安装完成后,须将 EPD 的 bin 目录添加至环境变量 PATH 中:
    PATH=/path/to/epd/bin:$PATH
    export PATH
  • 如果不想安装套件,可以用系统自带的管理程序单独安装 IPython,比如在 Arch 下:
    pacman -S ipython

除以上两种方法,还可以选择从源代码安装,但此方案比较复杂,需要考虑 IPython 的复杂依赖关系,如 Numpy,Scipy,Qt 等。 这条方案需慎重选择,因为光是 Numpy,Scipy 的安装就会让人焦头烂额

使用 Notebook

根据 IPython Notebook 服务端所在位置,可分为本地运行和远程运行两种情景。

本地运行

此种情形下,数据和计算资源均在本地机器上,需要首先在本地安装好 IPython,之后运行服务端:

ipython notebook

或直接进入 pylab 模式:

ipython notebook --pylab

如果想将 Matplotlib 生成的图片潜入网页内显示,则使用:

ipython notebook --pylab inline

上面的命令会在本机开启 IPython Notebook 服务端,并在系统默认浏览器内打开一个指向服务端的页面,该页面显示了所有保存的 Notebook。 如需新建 Notebook,可以点击New Notebook按钮,或着将本地的文件直接拖入空白处,其中该文件即可以是编写好的 Python 程序文件 (.py),也可以是之前运行过的 Notebook 文件 (.ipynb)。

在新打开的 Notebook 页面中,就可以进行各项交互式计算任务。Notebook 由一个个的执行单元组成,每个单元可以是一段 Python 代码,也可以是一段描述性文本,这些文本可以使用 Markdown 语法,也可以插入LaTeX表达式,或者直接使用 HTML。 在单元上可以方便地进行删除,复制,粘贴,剪切,插入,分割,合并等操作。

单元需要被运行才能产生实际的运算,其中代码单元内的语句被输入服务端内的 kernerl 进行运算,并从 kernel 内获得输出结果显示在单元内,文本单元则通过 Markdown 渲染器渲染成相应的网页格式展现

在进行了一系列计算操作之后,会希望将当前的工作保存,这时可以选择Save或者Download,它们都可以按 .ipynb 或 .py 格式保存 Notebook。 其中Save默认为 .ipynb 格式,如果希望将其改为 Python 可执行的 .py 格式, 可以在启动时加入--script后缀:

ipython notebook --script

保存

Save和Download的不同在于Save将文件存储在服务端所在的存储位置,而Download则是存储在浏览器所在的存储位置。因此,当服务端运行在远程服务器上时,如果希望将 Notebook 存至本地,应使用Download。
此外,还可以按网页或者 PDF 格式将当前的计算过程保存,缺陷是按这种方式进行保存下来的 Notebook 无法重新被载入运行。保存方法为点击Print View,这里会打开一个当前 Notebook 的纯网页版本,这时可以将其又键另存为网页保存,或者打印成 PDF 文件。

远程运行

上文已提到多次可以将服务端放置远程服务器运行,这样有多个好处:一是可以不受物理空间的限制,在任何可以连接到服务器的场所办公,二是在客户端无需安装任何计算相关的软件,只需一个浏览器即可,三是可以利用服务器高效庞大的计算资源,实现高性能计算。

IPython Notebook 可以方便地部署在似有服务器或流行的云计算平台 Amazon EC2、Windowns Azure 上,下面以私有服务器为例,介绍如何与远程服务器实现交互计算。
首先创建一个名为nbserver的配置文件3
ipython profile create nbserver

使用 IPython Notebook 自定义的 .ipynb 文件可以方便地将自己的计算过程与他人共享,但是必须要求对方也装有 IPython Notebook 才能查看。为了突破这一限制,IPython 官方建立了IPython Notebook Viewer网站,帮助在线渲染 .ipynb 文件。
用 IPython Notebook 写博客
借助于 Ipython Notebook Viewer 提供的服务,只需下面一行代码,即可在博客中嵌入显示 Notebook:不足之处是需要手工设置宽度与高度以符合页面大小。
如果对嵌入式的显示方法不满,可以利用nbconvert工具将 .ipynb 文件转换成 html 或 Markdown 格式,再放入网页中,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 207,248评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,681评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,443评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,475评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,458评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,185评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,451评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,112评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,609评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,083评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,163评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,803评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,357评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,357评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,590评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,636评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,925评论 2 344

推荐阅读更多精彩内容

  • IPython Notebook: 交互计算新时代 在使用 Python/IPython, R, Matlab 等...
    hzyido阅读 8,056评论 1 13
  • IPython Notebook 简介 目录[-] 基础 Tab 键自动完成 内省 魔术命令 历史输入和输出变量 ...
    hzyido阅读 5,503评论 0 4
  • 1 什么是ipython notebook? ipython notebook是一个基于web的交互式编程环境,允...
    东抢阅读 1,512评论 1 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,601评论 18 139
  • 由于几天来的劳累,加之身体上的不舒服,吃完晚饭后她便早早的躺下休息了,甚至连脸也没洗、牙也没刷。 后来,迷迷糊糊中...
    谢小蚁阅读 1,650评论 0 1