使用jupyter notebook搭建数据科学最佳交互式环境
小编近来在猛攻Python,毕竟江湖人传“人生苦短,我用Python”。当然了,自然也不是为了跟风,从去年开始小编的Python水平就一直处于从入门到放弃状态,而今为了提升核心竞争力,必然要下功夫学习一番。作为当下数据科学最热的两门编程语言,R和Python一直都是圈内焦点。小编今天要谈的是如何使用jupyter notebook这款神器来搭建最佳的数据科学交互式环境,以及jupyternotebook的一些使用的简单教程。
熟悉Python的朋友都知道,除了官方版本的CPython解释器,IPython是一款基于CPython的交互式解释器,而jupyter notebook就是以IPython为内核的一款交互式笔记本,可以全程从用户的角度展现分析逻辑和思维。随着jupyternotebook项目的不断发展壮大,其本身也不再仅局限于Python这一种编程语言了,Jupyter 的名字就很好地诠释了这一发展过程,它是 Julia、Python 以及R语言的组合,拼写相近于木星(Jupiter),而且现在支持的语言也远超这三种了。当然,我们从数据科学的角度出发,将jupyter notebook搭建成包括Python和R这两种数据科学语言的交互式环境就足够了。
jupyter的安装非常容易,可以直接在cmd中使用pip工具安装:
pip install jupyter notebook
当然如果你是使用anaconda套件来安装Python的,系统就直接内置了jupyter,然后在cmd中直接键入jupyter notebook即可启动jupyter的交互式环境。如果想在指定文件下创建 .ipynb文件,也可直接在cmd中定位到该文件夹下启动jupyter。启动成功后浏览器会自动跳转到jupyter notebook工作界面:
然后在界面右上角New菜单栏下即可根据需要创建新的notebook:
小编这里选的是Python3,所以交互式界面打开就可以看到满满的基于IPython的工作环境:
接下来就可以在这个本子上愉快的写代码啦。
像这样子每一个长方形小框框我们称之为cell,独立的一块一块存在,每一个cell需要单独运行,除了可以单击上面一排的按键之外,jupyter notebook为我们提供了大量的快捷键,比如说运行的快捷键为Shift+Enter。
除了cell单元用来编写代码之外,jupyter还提供了可用于文本编辑的markdown单元,在菜单栏点击下拉即可找到,基于markdown的文本编排操作方法cell单元一致:
另外,需要提及的一点是,jupyter的编辑界面包括编辑模式和命令模式两种。编辑模式就是在cell或者markdown单元下编辑文本和代码,定位到具体的单元,Enter即可进入编辑模式,编辑模式下单元左侧会呈现出绿色竖线。而命令模式则用于执行刚刚上面提到的键盘输入的快捷命令,使用Esc键进入命令模式,此时单元左侧呈现蓝色竖线。
本文在这里列出命令模式和编辑模式下jupyter所支持的一些常用的快捷命令:
命令模式:
快捷键 | 操作含义 | 快捷键 | 操作含义 |
Enter | 进入编辑模式 | Shift+V | 粘贴到上方单元 |
Shift+Enter | 运行本单元并选中下个单元 | V | 粘贴到下方单元 |
Ctrl+Enter | 运行本单元 | Z | 删除恢复的最后一个单元 |
Alt+Enter | 运行本单元并在其下方插入新单元 | 双击D | 删除选中的单元 |
Y | 单元转入代码状态 | Shift+M | 合并选中的单元 |
M | 转入markdown状态 | Ctrl+S/S | 保存文档 |
R | 转入raw状态 | L | 转换行号 |
1-6 | 设定1-6级标题 | O | 转换输出 |
K | 选中上方单元 | Esc/Q | 关闭页面 |
J | 选中下方单元 | H | 显示快捷键帮助 |
A | 在上方插入新单元 | 双击I | 中断内核连接 |
B | 在下方插入新单元 | 双击O | 重启内核连接 |
X | 剪切选中的单元 | Shift | 忽略 |
C | 复制选中的单元 | Space | 向下滚动 |
编辑模式:
快捷键 | 操作含义 | 快捷键 | 操作含义 |
Tab | 补全代码或缩进 | Shift+Tab | 提示 |
Ctrl+] | 缩进 | Ctrl+[ | 解除缩进 |
Ctrl+A | 全选 | Ctrl+Z | 还原 |
Ctrl+Y | 重做 | Ctrl+Home | 跳到单元开头 |
Ctrl+Up | 跳到单元开头 | Ctrl+End | 跳到单元末尾 |
(编辑模式其余快捷命令与命令模式下相同)
上面的例子小编全部都是从Python来看的,前面也提到了,jupyter notebook发展到如今,已经可以支持数十种编程语言了,那我们想要让我们的jupyter里面包含R的Kernel也并不是什么难事,下面就简单介绍下如何让你的R代码在jupyter里面跑起来。
jupyter notebook目前可支持的全部编程语言可见:
https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
要想在jupyter notebook中运行R语言其实非常简单,按顺序安装下面扩展包即可:
install.package('repr','IRdisplay','evaluate','crayon','pbdZMQ','devtools','uuid','digest')
library(devtools)
install_github("IRkernel/IRkernel")
IRkernel::installspec()
在R中执行上述四行代码,重新打开你的jupyternotebook即可看到对于R的支持标志:
简单测试几行R代码,比如说小编这里使用科比的职业生涯投篮数据绘制出科比的投篮方式选择的可视化图。
这样,基于jupyter notebook的R和Python的数据科学工作环境就搭建好啦。大家也来试一试吧!
往期精彩:
一个数据科学热爱者的学习历程