3.1. Jupyter技术概览¶
官网的介绍是:Jupyter Notebook是一个Web应用程序,允许您创建和共享包含实时代码,方程, 可视化和说明文本的文档。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。
也许说到 Jupyter 你会觉得陌生,其实Jupyter 脱胎于 IPython 项目,IPython 顾名思义, 是专注于 Python 的项目,但随着项目发展壮大,已经不仅仅局限于 Python 这一种编程语言了。 Jupyter 的名字就很好地释义了这一发展过程,它是Julia、Python 以及R语言的组合, 而且现在支持的语言也远超这三种了。那么notebook 如何工作呢?前面说到, Jupyter notebook 源自 Fernando Perez 发起的 IPython 项目。 IPython 是一种交互式 shell,与普通的 Python shell 相似, 但具有一些很好的功能(例如语法高亮显示和代码补全)。最初,notebook 的工作方式是, 将来自 Web 应用(你在浏览器中看到的 notebook)的消息发送给 IPython 内核 (在后台运行的 IPython 应用程序)。内核执行代码,然后将结果发送回 notebook。 当前架构与之相似,具体见下图。
简单来说就是:Jupyter Notebook是Ipython的升级版,而Ipython可以说是一个加强版的交互式 Shell, 也就是说,它比在terminal里运行python会更方便,界面更友好,功能也更强大。 如 图 3.1 和 图 3.2 :

图 3.1 Jupyter结构¶

图 3.2 Jupyter设计¶