浅析Jupyter Notebook

一 概述

  Jupyter Notebook是以web交互式的编程接口,是IPython notebook的升级版本。主要是针对python,另外支持运行 40 多种编程语言。Jupyter可以在个人机器开发,也可以连接到集群中使用分布式计算引擎spark等以及数据库(mysql/hive/hdfs)。

  Jupyter相对于其他python编程工具来说,除了通常的新建、删除、更改、下载编程文件外,还支持在线编程运算可帮助持续开发,特别在企业中有些项目需要持续很长时间的开发,每天下班后关闭jupyter,只要服务器的kernel不关闭,jupyter会保存好开发时的数据缓存和可视化结果,第二天继续开发,而不用又从头再运行,再配合支持markdown的功能,使得jupyternotebook方便记录开发过程和教学。下面对特征工程的教程就是利用了在jupyternotebook中使用markdown生成的,并且支持对文章的内容字体高亮。

二 使用

2.1 启动Jupyter Notebook

当你开启 Jupyter Notebook 时,主界面如下所示:

如果想新建一个 notebook,只需要点击New,选择你希望启动的 notebook 类型即可。

本次选择python3,出现如下界面:

其中上边显示的是代码单元格,对应的还有markdown单元格。

注:jupyter有三种类型的单元格:code cells,markdown cells,raw cells,常用的是code cells和 markdown cells类型。

简单的单元格操作:

ctrl+enter 执行选择的单元格
shift+enter 执行当前的单元格并选中下边的单元格
alt+enter 执行当前的单元格并在下边插入新的单元格
a 选中的单元格上边增加一个新的单元格
b 选中的单元格下边增加一个新的单元格
m 将当前的单元格由代码格式转化成markdown的格式
y 将当前的单元格由markdowm格式转化成代码格式

高级单元格操作:

  • 如果想删除某个单元格,可以选择该单元格,然后依次点击Edit -> Delete Cell
  • 如果想移动某个单元格,只需要依次点击Edit -> Move cell [up | down]
  • 如果想剪贴某个单元测,可以先点击Edit -> Cut Cell,然后在点击Edit -> Paste Cell [Above | Below]
  • 如果你的 notebook 中有很多单元格只需要执行一次,或者想一次性执行大段代码,那么可以选择合并这些单元格。点击Edit -> Merge Cell [Above | below]

记住这些操作,它们可以帮助你节省许多时间。

2.2 code cells

  Code模式下,除了一般的python代码编辑外,jupyter还支持一些其他的编程语言,如R,Julia,bash等。不过需要使用magic单元。Magic单元分为两种,一种是line magics,另外一种cell magics。Line magic是通过在前面加%,表示magic只在本行有效。Cell magics是通过在前面加%%,表示在整个cell单元有效。比如使用%%bash,产生了linux下的shell环境(window下不支持,不过可以使用%%cmd),这样就可以运行pwd和ls命令了。

其中一些比较常用的magic:

%matplotline inline在jupyter内打印图片;

%load:将本地py文件代码导入进来,例如 %load test.py

%run:运行本地代码,利用这个magic,我们可以把一些头文件,基本设置,共同函数写在不同的notebook内,用的时候运行一下就可以了。

%time:统计代码运行的时间,当然还有更多有趣的一些magic属性来方便我们的工作。

2.3 markdown

  jupyter提供的markdown是一个非常实用的功能,有了markdown可以将写代码和内容编辑非常好的结合,特别代码内容说明,markdown是一种纯文本标记语言,满足标题,公式,字体加粗,颜色甚至流程图和表格的内容编辑。更重要的是这类单元格也接受 HTML 代码。这样,你就可以在单元格类实现更加丰富的样式,添加图片,等等。

(1) 以#标记开头,意味着这是一个一级标题。如果需要子标题,可以使用以下标记表示(改变单元格类型时弹出消息中有解释):

# : 一级标题
## : 二级标题
### : 三级标题
...

#之后写下文档的标题,然后计算该单元格。你会发现一个样式非常好看的标题。

(2)在 notebook 中添加 Jupyter 的 logo,将其大小设置为 100px x 100px,并且放置在单元格左侧:

<img src="http://blog.jupyter.org/content/images/2015/02/jupyter-sq-text.png"
style="100px;height:100px;float:left">

(3) 公式

# 这里举一个例子
$$int_0^{+infty} x^2 dx$$

 结果如下图所示:

 参考:https://www.cnblogs.com/nxld/p/6566380.html

原文地址:https://www.cnblogs.com/Terrypython/p/9325929.html