政安晨的机器学习笔记——示例讲解机器学习工具Jupyter Notebook入门(超级详细)

        Jupyter Notebook是一个基于Web的交互式计算环境,可以用于创建、共享和运行代码、文档和可视化效果。它支持多种编程语言,包括Python、R、Julia等,并且提供了一个强大的交互式环境,可以编写和执行代码块,并在同一个界面中显示代码输出结果、文本说明和图形可视化。       

        Jupyter Notebook是在数据科学和机器学习领域非常流行的开发环境,被誉为每个数据科学家都应该掌握的工具。我们无须离开Jupyter Notebook环境,就可以编写程序、运行代码、查看输出及可视化数据结果,还可以在其中编排文本内容、编写和显示复杂的数学公式等。是机器学习领域开发算法模型的利器,从事IT工作的小伙伴们多多少少都应该掌握一丢丢。

                                ​​​​​​​        ​​​​​​​        ​​​​​​​        

        Jupyter Notebook的特点包括:

  1. 交互式编程环境:用户可以逐个代码块地编写和执行代码,可以立即看到结果,并进行实时调试和修改。
  2. 支持多种编程语言:Jupyter Notebook不仅支持Python,还支持其他常用的科学计算语言,如R、Julia等,可以在同一个界面中混合使用多种语言。
  3. 基于Web的界面:Jupyter Notebook使用基于Web的界面,可以在浏览器中访问和使用,方便在不同设备上进行工作和共享。
  4. 结合代码和文档:Jupyter Notebook可以在同一个环境中编写和展示代码、文本说明和可视化效果,可以方便地创建交互式的数据分析和可视化报告。
  5. 方便的代码共享和展示:Jupyter Notebook可以保存为.ipynb格式的文件,可以方便地共享给他人使用,并且可以将Notebook导出为HTML、PDF等格式,方便展示和演示。

话不多说,开始演绎。

一 、快速安装Jupyter

        Jupyter Notebook起源于一个Python交互式开发环境项目IPython Notebook。该项目的目标是为Python提供一个强大的REPL交互式开发环境,即“读取用户输入-执行代码-输出结果-循环上述操作”(Read-Eval-Print Loop,REPL)的交互式开发环境。IPython Notebook非常成功地实现了交互式开发环境以及强大的文档功能。后来,项目组把IPython和Python解释器剥离,实现了对多种语言的支持,将之命名为Jupyter。

        咱们将通过安装Anaconda来完成Jupyter的安装。Anaconda的安装,我的以前博客中提到,参考:基于Anaconda安装TensorFlow并尝试一个神经网络小实例

        相信参考我的这篇博客的前半部分,您已经安装好了Anaconda吧,Anaconda是一款开源的Python和R编程语言的发行版。它包含了大量常用的科学计算和数据分析库,可以提供一个完整而强大的开发环境,是数据科学领域最实用的工具之一。Anaconda附带了Jupyter Notebook,可以在浏览器中运行,支持实时代码编辑和执行、数据可视化、文档编写等功能。

        通过安装Anaconda,不仅安装好了Jupyter,还为我们进行各种学习演练配置好了基本环境,大量的演练都可以直接上手。

        安装好Anaconda之后,在Windows开始菜单中就可以看到Jupyter Notebook,我这边是这样的。

        

点击:Jupyter Notebook 打开,系统会使用默认浏览器打开Jupyter主页,这个过程中有如下窗口:

该窗口意在建立一个本地服务供Jupyter使用,所以在使用Jupyter Notebook的过程不要关闭这个窗口。

此时,您在浏览器的标签栏中看到了这个窗口:

恭喜您,您已经准备好了Jupyer Notebook环境。

提示大家一个小技巧,可以使用Anaconda Prompt命令行控制台打开Jupyter Notebook,如下:

在Anaconda Prompt 的命令行控制台中输入Jupyter Notebook命令打开。

打开Anaconda Prompt命令行的位置在这里:

在命令行中打开Jupyter Notebook有一个好处,您可以在指定的工作目录下打开Jupyter Notebook。比如,我的工作目录为D盘的zachen_ml,则我在命令行中先输入D: 将工作目录切换到D盘,在进入我的工作目录zachen_ml,并在该目录下打开Jupyter Notebook。

步骤如下:

        小伙伴们看到了吧,我此时打开的jupyter与刚刚上面看到的路径不一样,因为此时我已经处于zachen_ml工作目录下了。

        大家可能留意到了,Jupyter Notebook仪表板打开了一个本地服务http://localhost:8889/tree,启动Jupyter Notebook时,实际上是启动了一个本地的后端服务,Jupyter是一个完整的体系,后端是本地Jupyter服务,前端则是浏览器界面的Jupyter Notebook,所以上文提到的这个运行后端服务的窗口不能关闭。

        现在咱们单击Jupyter Notebook前端页面中右上角的新建:

此时浏览器会打开一个新的Notebook页面。这就是您第一个Jupyter Notebook。

这里,咱们简单讲一下:Notebook中基本的组成单位是单元格(Cell)。单元格是Notebook中输入文本或代码的容器,Jupyter以绿色框单元格表示当前正在编辑的单元格。

这里重点提一下:单元格有以下两种主要类型。

(1)Code类型,即单元格中包含的是可被内核(kernel)引擎执行的程序代码。代码的输出将显示在本单元格下方。

(2)Markdown类型,即单元格中包含的是Markdown格式的文本内容。该单元格运行时,会在当前位置显示经格式化渲染后的内容。我们可以通过单击工具栏中的Code下拉列表框改变单元格类型。

现在咱们来一个Hello Word! 请在单元格中输入代码:print ("Hello Word!") 然后点击按钮Run,就可以看到运行效果。

        大家要注意哦,Python语言是大小写敏感的。没有接触过Python的读者,要注意print的大小写,还要注意括号、单引号、双引号等应是半角字符。

        可以看到输出结果Hello World!显示在该单元格下方,同时在其下方出现一个新的单元格。这就是你的第一个Python程序,咱们向您的技术新世界问好!

        现在您有了新的生产力工具,让我们尝试一点有意思的东西吧。

        现在在你的Notebook单元格中,输入如下代码然后点运行:

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-20, 20, 0.2)
y = x**2
plt.plot(x,y)

   如下图:

        

        看到了吧,咱们画出了一条抛物线y=x^2的图形。现在,相信您对Jupyter Notebook已经有了初步了解啦,接下来就可以继续介绍Jupyter Notebook的各项功能啦。

        二、Jupyter的功能操作

        1. Jupyter主页:被称作Jupyter Notebook仪表板。

        其作用类似于大家熟悉的资源管理器,用于管理Jupyter Notebook。

        这里显示了一个后缀为.ipynb的文件,就是咱们上文刚刚做过的实验文件。现在您可以点开您的Notebook探索一下。

        右上角的New下拉列表框,可以新建基于多种开发语言的Notebook,或者创建文本文件、文件夹、终端等。因为我目前只安装了Python3,所以这里只显示了Python3,当然只能创建Python3.x的Notebook。

        单击Text File可以创建文本文件。单击Folder可以在当前路径下创建文件夹。单击Terminal将在浏览器中打开一个命令行终端页面。在Windows操作系统中,打开的是一个Windows的命令终端。我们可以在此运行Windows命令,如下:

Running标签页:Running页显示当前正在运行的Jupyter进程,如下图所示:

我们可以看到,当前正在运行一个Python 3 Notebooks进程。在该页面可以查看这些正在运行的进程,也可以根据需要关闭进程。

Clusters标签页:Clusters页管理Jupyter并行计算群集,用于处理IPython并行计算。

我们这里没有启动并行计算。

Quit及Logout按钮:Jupyter Notebook仪表板右上角的Quit按钮用于关闭Jupyter。

单击Quit按钮将停止Jupyter后台服务,并关闭Jupyter Notebook。

Logout按钮,将注销当前的登录账户,但不停止后台服务。注销后如果要重新进入Jupyter任何一个页面,需要输入口令。

如果您测试了这些按钮,请通过开始菜单或命令行按上文步骤重新启动Jupyter。

在Jupyter资源管理器中选中并打开(选择View)刚才咱们实验的文件,这里我已经重命名过这个文件了,如下:

在新的标签中可以看到刚才咱们做的实验在这里:

如果您在资源管理器中针对某个.ipynb文件点击了Edit,则会在新标签中展示该文件的源码。

该文件主要包括以下两部分:

cells部分,包括每一个单元格的类型和内容,如果有输出,也会包括其输出结果;

metadata部分,是该文件的元数据,包括其内核的语言信息、语言版本等内容。

如果您对这个文件感兴趣,以后有机会咱们可以深入分析。

接下来,咱们讲单元格。

单元格:每一个Jupyter Notebook都由若干单元格构成,单元格是我们输入代码或文本的区域。

当我们新建一个Notebook时,默认会有一个空的单元格,该单元格外围有一个绿色框。我们可以在该单元格中输入代码,并可单击Run运行该单元格中的内容。

根据输入内容的不同,单元格有如下几种类型:

Code单元格:代码类型

可以在代码类型的单元格中输入程序代码,这些代码将被内核运行,并输出结果。

Markdown单元格:Markdown类型

Markdown是一种轻量级标记语言,可用简洁的语法进行排版。在Markdown类型的单元格中输入文字,当运行该单元格时,该单元格中的内容将按照Markdown的排版标记进行渲染显示,该类型的单元格中也可以用LaTeX显示数学公式。(注:LaTeX是一种用于排版科学和数学文档的标记语言。)

Raw NBConvert单元格:原始类型。

类型的单元格中的内容在运行时不做任何处理或转换。用于在导出Notebook为其他格式时,将该单元格中的内容原样输出。比如:我们可以用该类型显示Markdown或LaTeX的原始形式。

咱们可以通过Jupyter Notebook的工具栏或快捷键来切换单元格的类型。如下图所示:

编辑模式与命令模式:Jupyter Notebook有两种不同的键盘输入模式。

编辑模式:当一个单元格为编辑模式时,可以在该单元格中输入代码或文本,此时当前单元格的外围有一个绿色框。单击单元格的内部输入区域,即可进入编辑模式。

命令模式:在命令模式下,键盘操作将作为Jupyter Notebook的命令及其快捷方式。单击单元格外侧区域,即可进入命令模式,此时当前单元格的外围有一个蓝色框。

在编辑模式下,我们可以在单元格中输入内容;而在命令模式下,键盘操作则被赋予了特定的功能。

例如,在编辑模式下(绿色格子),我们按键盘上的M键,将会在该单元格中光标位置输入字母M;而在命令模式下(蓝色格子),按M键则会将该单元格变为Markdown类型,按Y键则会将该单元格变为Code类型。

关于代码的执行顺序:一般情况下,Notebook中的代码按照单元格的顺序由上至下依次执行。不过,我们也可以单独执行某一个单元格中的代码。所以,Code类型的单元格左侧的[ ]中的编号,才表示真正的执行顺序。

提示一下:点击某个单元格,可以单独执行。单元格左侧[ ]内的编号是随着具体执行情况而变化的。

Kernel菜单

我们可以通过Kernel菜单对内核进行重启,并可以选择如下具体命令。

Restart:重启内核,清除所有变量。

Restart & Clear Output:重启内核,清除所有变量,同时清除页面中所有单元格下方的输出内容。Restart & Run All:重启内核,清除所有变量,同时清除页面中所有单元格下方的输出内容,然后从头依次执行所有单元格中的代码。

File菜单

File菜单用于管理Jupyter Notebook中的当前文件。

New Notebook的功能和Jupyter Notebook仪表板的New下拉列表框的功能一样,用于创建一个新的Notebook文件。在目前默认安装的情况下,可以创建Python 3的Notebook。

Open用于打开一个现有的Notebook文件。但是,如前文所述,Jupyter Notebook只能管理其启动路径下的文件、文件夹以及子文件夹下的文件,而不能随意打开本机任意位置的文件。

Make a Copy用于创建当前文件的一个副本,并在当前浏览器的新页面中打开该副本。

Save as用于将当前文件另存为一个新的副本。

Rename用于重命名当前文件。

我们也可以在Notebook页面顶端的Jupyter图标后面直接单击该文件名来修改文件名,其作用和Rename的一致,操作如下。

Jupyter提供了Checkpoint功能。

        当我们新建一个Notebook时,Jupyter会同时为该Notebook文件创建一个Checkpoint文件。该文件位于Notebook所在文件夹中一个名为.ipynb_checkpoints的隐藏子文件夹中,文件名为[NotebookName]-checkpoint.ipynb。

        在我们单击Notebook页面工具栏的保存按钮、使用Ctrl+S快捷键,或者单击File菜单的Save and Checkpoint时,该Notebook文件和Checkpoint文件都会被保存。

        Checkpoint文件为我们提供了一个保障机制,即一旦我们对Notebook进行了误操作,就可以通过Revert to Checkpoint来恢复Checkpoint的内容。

Print Preview提供了打印预览功能。单击Print Preview,Jupyter将运行当前Notebook,然后将运行后的页面转换为.html文件并在浏览器中显示。

Download as为我们提供了多种下载/另存方式。有些格式在默认安装中就可以使用,有些格式则需要更多设置才能使用。下面我们简要介绍每种格式的基本概念。

信任笔记本。

        为了防止来源不明的恶意代码被执行,Jupyter提供了针对Notebook文件的安全机制。当我们新建、执行或保存一个Notebook文件时,Jupyter会计算该文件的签名,并将签名保存在系统中。

        当我们打开一个Notebook文件时,Jupyter 会验证该签名。如果签名匹配,则该文件是可信的Notebook;否则,是不可信的。不被信任的文件中的JavaScript及HTML输出将不被显示,以防止恶意代码执行。对于在本机Jupyter中新建或进行编辑等操作的Notebook文件,因为签名一致,所以都是可信的。其Notebook页面右上角会显示Trusted提示,其File菜单中显示为灰色的Trusted Notebook。如果是其他来源的Notebook文件,由于本机Jupyter的签名数据库中没有此文件的签名,因此该文件是不可信的。其Notebook页面右上角会显示Not Trusted,其File菜单中显示为Trust Notebook。如果要确认该文件是安全、可靠的,可以单击Trust Notebook,将其变为可信的。

Close and Halt用于关闭当前Notebook的内核,并关闭该Notebook的浏览器窗口。

需要说明的是:

如果我们直接单击该Notebook的浏览器窗口的关闭按钮,将会关闭该Notebook页面,但是其内核还在继续运行。我们可以在Jupyter Notebook仪表板看到此Notebook的图标依然是绿色的,且其状态为Running。如果在Jupyter Notebook仪表板选中该Notebook,并单击工具栏中的Shutdown按钮,会关闭此Notebook的内核,但其窗口并未关闭。此时虽然可以继续输入代码,但无法执行。

三、结论

现在,您已经基本用起来了Jupyter Notebook这个开源的交互式笔记本。

您已经可以使用它进行如下工作啦。

  1. 数据探索和分析:Jupyter Notebook提供了一种方便的方式来探索和分析数据。用户可以在笔记本中编写代码、运行代码并即时查看结果。这使得数据分析变得非常直观和交互式。

  2. 可视化展示:Jupyter Notebook支持生成各种图表、图像和可视化结果。用户可以使用各种Python库(如Matplotlib和Seaborn)来创建漂亮的图表,并将其直接嵌入到笔记本中展示。

  3. 文档编写和展示:Jupyter Notebook不仅可以执行代码,还可以将代码与文本、图像和公式等内容混合在一起。这使得笔记本成为编写文档、教程和报告的理想工具。用户可以使用Markdown语法来格式化文本,并添加标题、子标题、列表和链接等。

  4. 教育和学习:Jupyter Notebook在教育领域非常受欢迎。它可以用于编写和共享教育材料,学生可以在笔记本中学习和实践编程。此外,Jupyter Notebook还支持通过nbgrader扩展进行自动化学生作业的评分。

  5. 科学计算和实验:Jupyter Notebook是科学研究和实验的强大工具。科学家可以在笔记本中编写和运行复杂的数学模型、算法和仿真实验。同时,笔记本还可以记录和展示实验过程和结果,使得科学研究更加透明和可复现。

总之,Jupyter Notebook通过其交互性、可视化、文档化和教育能力,成为了数据分析、科学计算和教育领域中不可或缺的工具。它为用户提供了一种方便、灵活和可扩展的方式来编写、运行和共享代码和文档。

  • 38
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

政安晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值