Jupyter Notebook神器-免费体验来自微软的Azure Notebook
我们已经进入了人工智能与大数据时代,因为Python对接AI和大数据分析的工具更容易些,进而带动了Python的热度,关于Python的相关文章,可以参考:
Python搭建开发环境-Anaconda+PyCharm的安装和入门教程
Python-lambda匿名函数,以及filter、map、reduce、apply函数
Python 科学计算库 NumPy 基本操作
Python 科学计算库 Pandas 基本操作
Python中常用的可视化工具 Matplotlib 简单入门
在学习Python的过程中,进一步掌握Jupyter Notebook神器,体验交互式编程的乐趣。
Jupyter Notebook 是一个非常强大的工具,可以创建漂亮的交互式文档,制作教学材料等等。建议你马上开始使用 Jupyter Notebook,体验Jupyter Notebook 的强大功能。
1. Jupyter Notebook 是什么?
Jupyter 官网:https://jupyter.org/
Jupyter Notebook(此前被称为 IPython Notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
Jupyter Notebook 官方定义:
The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.
Jupyter Notebook 是一个开源的 Web 应用,它能让用户将可运行的代码、数学方程、可视化内容和说明文本等内容全部组合到一个易于共享的文档中,其用途包括数据清理和变换、数值模拟、统计建模、数据可视化、机器学习等。
随着Jupyter的流行以及开源社区的努力,现在Jupyter已经支持绝大部分的主流编程语言了。这一点,我们从它主页的横幅图片也可以看出。
Jupyter Notebook是如何工作的?
Jupyter Notebook源自Fernando Perez发起的IPython项目。IPython 是一种交互式的shell,与普通的Python shell相似,但具有一些很好的功能(如语法高亮和代码补全)。Notebook的工作方式是将来自Web应用的消息发送给IPython内核(服务器后台运行的IPython应用程序)。内核执行代码,然后将结果返回给Notebook。整个架构如下图所示。
这个架构的一个优点是Notebook服务器和内核是分开,因此可以在两者之间发送任何语言的代码。例如,早期的两个非Python内核分别是R语言和Julia语言。使用R内核时,用R编写的代码将发送给执行该代码的R内核,这与在IPython内核上运行Python代码完全一样。IPython Notebook已被改名,因为Notebook变得与编程语言无关。新的名称Jupyter由Julia、Python和R组合而成。
2. 体验 Azure Notebook
先体验一下来自Microsoft 提供的在线Notebook 服务。使用Azure Notebook 需要登录才能运行Notebook,注册登录也很方便。
为啥推荐Azure Notebook,因为在线访问速度比较快。
Azure Notebook URL:https://notebooks.azure.com/
下面详细演示在Azure Notebook 中创建一个新的项目、Notebook的过程。
(1)首先登录Azure Notebook,然后创建一个项目(命名为:PythonTutorial):
(2)然后,在项目中新增一个notebook:
在Create New Notebook 弹出窗口中,输入notebook文件名称,如HelloWorldInPython.ipynb(后缀 .ipynb 表示 IronPython (Jupyter) Notebook),在Language一栏中选择Python 3.6,点击New按钮,创建完成。
HelloWorldInPython.ipynb 出现在项目文件列表中:
(3)运行notebook
选择并点击新创建的notebook,在编辑器(editor)中运行,上一步选择的kernel 内核会自动激活。一般来说,一个Notebook对应一个Kernel的进程。如下所示。
下方的主要区域,由被称为Cell(单元格)的部分组成。每个 notebook 由多个单元格构成,而每个单元格又可以有不同的用途。
上面的截图中看到的是一个代码单元格(code cell),以[ ]开头。在这种类型的单元格中,可以输入任意代码并执行。
默认情况下,notebook 是一个空的文件。修改cell 类型为 Markdown,并在cell 中输入如下标题文本:
输入标题文本:
选择Run 按钮。Azure Notebooks 将自动创建在其后创建一个新的cell,并且光标也会自动移动到一个新的单元格中。
根据绿色边框线,我们可以轻松地识别出当前工作的单元格。
在上述Code cell 中,输入如下Python 代码,然后再次点击Run 按钮(快捷键:Shift+Enter)运行代码。
from datetime import datetime
now = datetime.now()
msg = "Hello, Rickie! Today is %s" % now.strftime("%A, %d %B, %Y")
print(msg)
在Cell 下面,可以看到成功的输出文本。
(4)Cell(单元格)操作
高级单元格操作,将让编写 notebook 变得更加方便。举例如下:
- 如果想删除某个单元格,可以选择该单元格,然后依次点击Edit -> Delete Cell;
- 如果想移动某个单元格,只需要依次点击Edit -> Move cell [up | down];
- 如果想剪贴某个单元测,可以先点击Edit -> Cut Cell,然后在点击Edit -> Paste Cell [Above | Below];
- 如果你的 notebook 中有很多单元格只需要执行一次,或者想一次性执行大段代码,那么可以选择合并这些单元格。点击Edit -> Merge Cell [Above | below]。
或者直接通过主工具栏上的按钮进行相关的操作。记住这些操作,它们可以帮助你节省许多时间。
最后,选择File > Close and Halt 菜单项,停止server,并关闭浏览器窗口。
通过URL 可以访问指定用户的Libraries,小编创建的Libraries 网站如下:
https://notebooks.azure.com/rickiechina
可以看到刚刚创建的项目URL:
https://notebooks.azure.com/rickiechina/projects/pythontutorial
上述项目中还有一个draw.ipynb Notebook,有兴趣也可以体验一下。
3. 其他托管的Jupyter Notebook
(1)mybinder.org
mybinder.org是Jupyter官方推荐的一个托管平台。Jupyter官方给出的几个Notebook的示例也是运行在mybinder.org提供的Notebook服务器上的。除此之外,mybinder.org还能加载Github代码库中的Notebook文件,这点比较酷。微软的Azure Notebook也支持从Github中克隆Jupyter Notebook,下次演示。
(2)Google Colaboratory
Google Colaboratory是Google推出的Notebook托管平台,为全球开发者免费提供在线的Notebook服务,支持Python2及3,它和Github有很好的集成。
https://colab.research.google.com/
但是国内一般人访问不了。
(3)本地使用Anaconda 安装Jupyter Notebook
Jupyter官方推荐使用Anaconda来安装Jupyter Notebook。Anaconda实际上是一个软件发行版,它附带了conda、Python 和 150多个数据科学包及其依赖项,因此它的下载文件比较大(约500多MB)。应用程序conda是包和环境管理器。
具体安装过程非常简单,可以参考:
Python搭建开发环境-Anaconda+PyCharm的安装和入门教程
Jupyter Notebook安装完成之后,打开Anaconda命令行,输入jupyter notebook即可,Jupyter Notebook默认会在8888端口下运行,或者点击Jupyter Notebook 菜单项。
总结
本文叙述了Jupyter Notebook的一些基本概念、名称的由来以及如何在线使用Azure Notebook。
Jupyter Notebook的本质是编程语言的一种界面,它区别与常规程序以文件的形式解析或编译执行,取而代之是交互式的编程,提高了效率和响应速度。Jupyter Notebook以其方便的交互模式和丰富的Web视图呈现,在数据分析、数据可视化、机器学习等领域非常受欢迎,它已经成为了数据分析和人工智能领域事实上的标准工具。
参考链接:
Jupyter Notebook
https://johnnyqian.net/blog/jupyter-notebook/