给初学者的 Jupyter Notebook 教程

目录

一、什么是Jupyter Notebook?

1. 简介

2. 组成部分

① 网页应用

② 文档

3. Jupyter Notebook的主要特点

二、安装Jupyter Notebook

0. 先试用,再决定

1. 安装

① 安装前提

② 使用Anaconda安装

③ 使用pip命令安装

三、运行Jupyter Notebook

0. 帮助

1. 启动

① 默认端口启动

② 指定端口启动

③ 启动服务器但不打开浏览器

2. 主页面

① 主页面内容

② 设置Jupyter Notebook文件存放位置

⑴ 创建文件夹/目录

⑵ 配置文件路径

⑶ 修改配置文件

⒜ 打开配置文件

⒝ 查找关键词

⒞ 编辑配置文件

⒟ 取消注释

⒠ 保存配置文件

⒡ 验证

⒢ 注意

四、Jupyter Notebook的基本使用

1. Files页面

① 笔记本的基本操作

② 笔记本重命名的两种方式

⑴ 笔记本内部重命名

⑵ 笔记本外部重命名

⑶ 演示

2. Running页面

3. Clusters页面

4. Conda页面

5. Nbextensions页面

五、拓展功能

1. 关联Jupyter Notebook和conda的环境和包——“nb_conda”☆

① 安装

② 使用

③ 卸载

2. Markdown生成目录

3. Markdown在文中设置链接并定位

4. 加载指定网页源代码

① 使用场景

② 方法

③ 例

5. 加载本地Python文件

① 使用场景

② 方法

③ 注意

④ 例

6. 直接运行本地Python文件

① 使用场景

② 方法

③ 注意

④ 例

7. 在Jupyter Notebook中获取当前位置

① 使用场景

② 方法

③ 注意

④ 例

8. 在Jupyter Notebook使用shell命令

① 方法一——在笔记本的单元格中

⑴ 语法

⑵ 例

② 方法二——在Jupyter Notebook中新建终端

⑴ 启动方法

⑵ 关闭方法

⑶ 例

9. 隐藏笔记本输入单元格

① 使用场景

② 方法一

⑴ 代码

⑵ 例

③ 方法二

⑴ 代码

⑵ 例

10. 魔术命令

六、增加内核——“ipykernel” ☆

1. 使用场景

2. 解决方法之命令行模式

① 同时使用不同版本的Python

⑴ 在Python 3中创建Python 2内核

⒜ pip安装

⒝ conda安装

⑵ 在Python 2中创建Python 3内核

⒜ pip安装

⒝ conda安装

② 为不同环境创建内核

⑴ 切换至需安装内核的环境

⑵ 检查该环境是否安装了ipykernel包

⑶ 为当前环境下的当前用户安装Python内核

⑷ 检验

3. 解决方法之图形界面模式

七、Jupyter Notebook快捷键

1. Mac与Windows特殊按键对照表

2. Jupyter Notebook笔记本的两种模式

① 命令模式

② 编辑模式

3. 两种模式的快捷键

① 命令模式

② 编辑模式

4. 查看和编辑快捷键

① 查看快捷键

② 编辑快捷键

⑴ 方法一

⑵ 方法二

③ 例

八、关闭和退出

1. 关闭笔记本和终端

① 方法一

② 方法二

③ 注意

④ 演示

2. 退出Jupyter Notebook程序


一、什么是Jupyter Notebook?

1. 简介

Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——Jupyter Notebook官方介绍

简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中**「直接」**编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。

2. 组成部分

① 网页应用

网页应用即基于网页形式的、结合了编写说明文档、数学公式、交互计算和其他富媒体形式的工具。「简言之,网页应用是可以实现各种功能的工具。」

② 文档

即Jupyter Notebook中所有交互计算、编写说明文档、数学公式、图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。

这些文档是保存为后缀名为.ipynbJSON格式文件,不仅便于版本控制,也方便与他人共享。

此外,文档还可以导出为:HTML、LaTeX、PDF等格式。

3. Jupyter Notebook的主要特点

  1. 编程时具有**「语法高亮」**、缩进、tab补全的功能。

  2. 可直接通过浏览器运行代码,同时在代码块下方展示运行结果。

  3. 以富媒体格式展示计算结果。富媒体格式包括:HTML,LaTeX,PNG,SVG等。

  4. 对代码编写说明文档或语句时,支持Markdown语法。

  5. 支持使用LaTeX编写数学性说明。

二、安装Jupyter Notebook

0. 先试用,再决定

如果看了以上对Jupyter Notebook的介绍你还是拿不定主意究竟是否适合你,那么不要担心,你可以先**「免安装试用体验」**一下,然后再做决定。

值得注意的是,官方提供的同时试用是有限的,如果你点击链接之后进入的页面如下图所示,那么不要着急,过会儿再试试看吧。

试用失败

如果你足够幸运,那么你将看到如下界面,就可以开始体验啦。

主界面

编辑页面

1. 安装

① 安装前提

安装Jupyter Notebook的前提是需要安装了Python(3.3版本及以上,或2.7版本)。

② 使用Anaconda安装

如果你是小白,那么建议你通过安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook及其他工具,还有python中超过180个科学包及其依赖项。

你可以通过进入Anaconda的官方下载页面自行选择下载;

常规来说,安装了Anaconda发行版时已经自动为你安装了Jupyter Notebook的,但如果没有自动安装,那么就在终端(Linux或macOS的“终端”,Windows的“Anaconda Prompt”,以下均简称“终端”)中输入以下命令安装:

conda install jupyter notebook  

③ 使用pip命令安装

如果你是有经验的Python玩家,想要尝试用pip命令来安装Jupyter Notebook,那么请看以下步骤吧!接下来的命令都输入在终端当中的噢!

把pip升级到最新版本

pip install --upgrade pip
  • 注意:老版本的pip在安装Jupyter Notebook过程中或面临依赖项无法同步安装的问题。因此**「强烈建议」**先把pip升级到最新版本。

安装Jupyter Notebook

pip install jupyter

三、运行Jupyter Notebook

0. 帮助

如果你有任何jupyter notebook命令的疑问,可以考虑查看官方帮助文档,命令如下:

jupyter notebook --help  

jupyter notebook -h  

1. 启动

① 默认端口启动

在终端中输入以下命令:

jupyter notebook  

执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook。

启动过程中终端显示内容如下:

$ jupyter notebook  
\[I 08:58:24.417 NotebookApp\] Serving notebooks from local directory: /Users/catherine  
\[I 08:58:24.417 NotebookApp\] 0 active kernels  
\[I 08:58:24.417 NotebookApp\] The Jupyter Notebook is running at: http://localhost:8888/  
\[I 08:58:24.417 NotebookApp\] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).  
  • 注意:之后在Jupyter Notebook的所有操作,都请保持终端**「不要关闭」**,因为一旦关闭终端,就会断开与本地服务器的链接,你将无法在Jupyter Notebook中进行其他操作啦。

浏览器地址栏中默认地将会显示:http://localhost:8888。其中,“localhost”指的是本机,“8888”则是端口号。

如果你**「同时」**启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个Jupyter Notebook数字就加1,如“8889”、“8890”……

② 指定端口启动

如果你想自定义端口号来启动Jupyter Notebook,可以在终端中输入以下命令:

jupyter notebook --port <port\_number\>  

其中,“<port_number>”是自定义端口号,直接以数字的形式写在命令当中,数字两边不加尖括号“<>”。如:jupyter notebook --port 9999,即在端口号为“9999”的服务器启动Jupyter Notebook。

③ 启动服务器但不打开浏览器

如果你只是想启动Jupyter Notebook的服务器但不打算立刻进入到主页面,那么就无需立刻启动浏览器。在终端中输入:

jupyter notebook --no-browser  

此时,将会在终端显示启动的服务器信息,并在服务器启动之后,显示出打开浏览器页面的链接。当你需要启动浏览器页面时,只需要复制链接,并粘贴在浏览器的地址栏中,轻按回车变转到了你的Jupyter Notebook页面。

no_browser

例图中由于在完成上面内容时我同时启动了多个Jupyter Notebook,因此显示我的“8888”端口号被占用,最终分配给我的是“8889”。

2. 主页面

① 主页面内容

当执行完启动命令之后,浏览器将会进入到Notebook的主页面,如下图所示。

如果你的主页面里边的文件夹跟我的不同,或者你在疑惑为什么首次启动里边就已经有这么多文件夹,不要担心,这里边的文件夹全都是你的家目录里的目录文件。你可以在终端中执行以下2步来查看:

① cd 或 cd - 或 cd ~ 或cd /Users/

  • 这个命令将会进入你的家目录。

  • “<user_name>” 是用户名。用户名两边不加尖括号“<>”。

② ls

  • 这个命令将会展示你家目录下的文件。

② 设置Jupyter Notebook文件存放位置

如果你不想把今后在Jupyter Notebook中编写的所有文档都直接保存在家目录下,那你需要修改Jupyter Notebook的文件存放路径。

⑴ 创建文件夹/目录
  • Windows用户在想要存放Jupyter Notebook文件的**「磁盘」「新建文件夹」**并为该文件夹命名;双击进入该文件夹,然后复制地址栏中的路径。

  • Linux/macOS用户在想要存放Jupyter Notebook文件的位置**「创建目录」**并为目录命名,命令为:mkdir;进入目录,命令为:cd;查看目录的路径,命令为:pwd;复制该路径。

  • 注意:“<directory_name>”是自定义的目录名。目录名两边不加尖括号“<>”。

⑵ 配置文件路径
  • 一个便捷获取配置文件所在路径的命令:
jupyter notebook --generate-config  
  • 注意:这条命令虽然可以用于查看配置文件所在的路径,但主要用途是是否将这个路径下的配置文件**「替换」「默认配置文件」。如果你是第一次查询,那么「或许」**不会出现下图的提示;若文件已经存在或被修改,使用这个命令之后会出现询问“Overwrite /Users/raxxie/.jupyter/jupyter_notebook_config.py with default config? [y/N]”,即“用默认配置文件覆盖此路径下的文件吗?”,如果按“y”,则完成覆盖,那么之前所做的修改都将失效;如果只是为了查询路径,那么一定要输入“N”。

常规的情况下,Windows和Linux/macOS的配置文件所在路径和配置文件名如下所述:

  • Windows系统的配置文件路径:C:\Users\\.jupyter\

  • Linux/macOS系统的配置文件路径:/Users//.jupyter/ 或 ~/.jupyter/

  • 配置文件名:jupyter_notebook_config.py

  • 注意:

① “<user_name>”为你的用户名。用户名两边不加尖括号“<>”。

② Windows和Linux/macOS系统的配置文件存放路径其实是相同的,只是系统不同,表现形式有所不同而已。

③ Windows和Linux/macOS系统的配置文件也是相同的。文件名以“.py”结尾,是Python的可执行文件。

④ 如果你不是通过一步到位的方式前往配置文件所在位置,而是一层一层进入文件夹/目录的,那么当你进入家目录后,用ls命令会发现找不到“.jupyter”文件夹/目录。这是因为凡是以“.”开头的目录都是隐藏文件,你可以通过ls -a命令查看当前位置下所有的隐藏文件。

⑶ 修改配置文件
  • Windows系统的用户可以使用文档编辑工具或IDE打开“jupyter_notebook_config.py”文件并进行编辑。常用的文档编辑工具和IDE有记事本、Notepad++、vim、Sublime Text、PyCharm等。其中,vim是没有图形界面的,是一款学习曲线较为陡峭的编辑器,其他工具在此不做使用说明,因为上手相对简单。通过vim修改配置文件的方法请继续往下阅读。

  • Linux/macOS系统的用户建议直接通过终端调用vim来对配置文件进行修改。具体操作步骤如下:

⒜ 打开配置文件

打开终端,输入命令:

vim ~/.jupyter/jupyter\_notebook\_config.py  

vim打开配置文件

执行上述命令后便进入到配置文件当中了。

⒝ 查找关键词

进入配置文件后查找关键词“c.NotebookApp.notebook_dir”。查找方法如下:

进入配置文件后不要按其他键,用**「英文半角」**直接输入/c.NotebookApp.notebook_dir,这时搜索的关键词已在文档中高亮显示了,按回车,光标从底部切换到文档正文中被查找关键词的首字母。

⒞ 编辑配置文件

按**「小写i」**进入编辑模式,底部出现“–INSERT–”说明成功进入编辑模式。使用方向键把光标定位在第二个单引号上(光标定位在哪个字符,就在这个字符前开始输入),把“⑴ 创建文件夹/目录”步骤中复制的路径粘贴在此处。

⒟ 取消注释

把该行行首的**井号(#)**删除。因为配置文件是Python的可执行文件,在Python中,井号(#)表示注释,即在编译过程中不会执行该行命令,所以为了使修改生效,需要删除井号(#)。

config

⒠ 保存配置文件

先按ESC键,从编辑模式退出,回到命令模式。

再用**「英文半角」**直接输入:wq,回车即成功保存且退出了配置文件。

注意:

  • 「冒号(:)」 一定要有,且也是**「英文半角」**。

  • w:保存。

  • q:退出。

⒡ 验证

在终端中输入命令jupyter notebook打开Jupyter Notebook,此时你会看到一个清爽的界面,恭喜!

modified

⒢ 注意
  • 以上所有命令均以**「英文半角」格式输入,若有报错,请严格检查这两个条件,「英文」「半角」**。

  • 这里仅介绍了vim编辑器修改配置文件的方法,没有对vim编辑器的详细使用进行讲解,所以无需了解vim编辑器的具体使用方法,只需要按照上述步骤一定可以顺利完成修改!

  • 推荐有时间和经历时学习一下vim编辑器的使用。这款强大的编辑器将会成为你未来工作中的利器。

四、Jupyter Notebook的基本使用

1. Files页面

Files页面

此时你的界面当中应该还没有“Conda”和“Nbextensions”类目。不要着急,这两个类目将分别在“五、拓展功能”中的“1.关联Jupyter Notebook和conda的环境和包——‘nb_conda’”和“2.Markdown生成目录”中安装。

Files页面是用于管理和创建文件相关的类目。

对于现有的文件,可以通过勾选文件的方式,对选中文件进行复制、重命名、移动、下载、查看、编辑和删除的操作。

同时,也可以根据需要,在“New”下拉列表中选择想要创建文件的环境,进行创建“ipynb”格式的笔记本、“txt”格式的文档、终端或文件夹。如果你创建的环境没有在下拉列表中显示,那么你需要依次前往“五、拓展功能”中的“1.关联Jupyter Notebook和conda的环境和包——‘nb_conda’”和“六、增加内核——‘ipykernel’”中解决该问题。

① 笔记本的基本操作

笔记本的使用

上图展示的是笔记本的基本结构和功能。根据图中的注解已经可以解决绝大多数的使用问题了!

工具栏的使用如图中的注解一样直观,在此不过多解释。需要特别说明的是“单元格的状态”,有Code,Markdown,Heading,Raw NBconvert。其中,最常用的是前两个,分别是代码状态,Markdown编写状态。Jupyter Notebook已经取消了Heading状态,即标题单元格。取而代之的是Markdown的一级至六级标题。而Raw NBconvert目前极少用到,此处也不做过多讲解。

菜单栏涵盖了笔记本的所有功能,即便是工具栏的功能,也都可以在菜单栏的类目里找到。然而,并不是所有功能都是常用的,比如Widgets,Navigate。Kernel类目的使用,主要是对内核的操作,比如中断、重启、连接、关闭、切换内核等,由于我们在创建笔记本时已经选择了内核,因此切换内核的操作便于我们在使用笔记本时切换到我们想要的内核环境中去。由于其他的功能相对比较常规,根据图中的注解来尝试使用笔记本的功能已经非常便捷,因此不再做详细讲解。

② 笔记本重命名的两种方式

⑴ 笔记本内部重命名

在使用笔记本时,可以直接在其内部进行重命名。在左上方“Jupyter”的图标旁有程序默认的标题“Untitled”,点击“Untitled”然后在弹出的对话框中输入自拟的标题,点击“Rename”即完成了重命名。

⑵ 笔记本外部重命名

若在使用笔记本时忘记了重命名,且已经保存并退出至“Files”界面,则在“Files”界面勾选需要重命名的文件,点击“Rename”然后直接输入自拟的标题即可。

⑶ 演示

重命名

2. Running页面

Running页面主要展示的是当前正在运行当中的终端和“ipynb”格式的笔记本。若想要关闭已经打开的终端和“ipynb”格式的笔记本,仅仅关闭其页面是无法彻底退出程序的,需要在Running页面点击其对应的“Shutdown”。更多关闭方法可以查阅“八、关闭和退出”中的“1.关闭笔记本和终端”

Running

3. Clusters页面

Clusters tab is now provided by IPython parallel. See ‘IPython parallel’ for installation details.

Clusters类目现在已由IPython parallel对接,且由于现阶段使用频率较低,因此在此不做详细说明,想要了解更多可以访问IPython parallel的官方网站。

4. Conda页面

Conda页面主要是Jupyter Notebook与Conda关联之后对Conda环境和包进行直接操作和管理的页面工具。详细信息请直接查阅“五、拓展功能”中的“1.关联Jupyter Notebook和conda的环境和包——‘nb_conda’”。这是目前使用Jupyter Notebook的必备环节,因此请务必查阅。

5. Nbextensions页面

nbextensions

Nbextensions页面提供了多个Jupyter Notebook的插件,使其功能更加强大。该页面中主要使用的插件有nb_conda,nb_present,Table of Contents(2)。这些功能我们无需完全掌握,也无需安装所有的扩展功能,根据本文档提供的学习思路,我们只需要安装Talbe of Contents(2)即可,该功能可为Markdown文档提供目录导航,便于我们编写文档。该安装指导请查阅“五、拓展功能”中的“2.Markdown生成目录”。

五、拓展功能

1. 关联Jupyter Notebook和conda的环境和包——“nb_conda”☆

① 安装

conda install nb\_conda  

执行上述命令能够将你conda创建的环境与Jupyter Notebook相关联,便于你在Jupyter Notebook的使用中,在不同的环境下创建笔记本进行工作。

② 使用

  • 可以在Conda类目下对conda环境和包进行一系列操作。

    conda类目

  • 可以在笔记本内的“Kernel”类目里的“Change kernel”切换内核。

    切换内核

③ 卸载

canda remove nb\_conda  

执行上述命令即可卸载nb_conda包。

2. Markdown生成目录

  • 不同于有道云笔记的Markdown编译器,Jupyter Notebook无法为Markdown文档通过特定语法添加目录,因此需要通过安装扩展来实现目录的添加。
conda install -c conda-forge jupyter\_contrib\_nbextensions  
  • 执行上述命令后,启动Jupyter Notebook,你会发现导航栏多了“Nbextensions”的类目,点击“Nbextensions”,勾选“Table of Contents ⑵”

    nbextensions

  • 之后再在Jupyter Notebook中使用Markdown,点击下图的图标即可使用啦。

    添加目录

3. Markdown在文中设置链接并定位

在使用Markdown编辑文档时,难免会遇到需要在文中设定链接,定位在文档中的其他位置便于查看。因为Markdown可以完美的兼容html语法,因此这种功能可以通过html语法当中“a标签”的索引用法来实现。

语法格式如下:

\[添加链接的正文\](#自定义索引词)  
<a id\=自定义索引词\>跳转提示</a\>  
  • 注意:
  1. 语法格式当中所有的符号均是**「英文半角」**。

  2. “自定义索引词”最好是英文,较长的词可以用下划线连接。

  3. “a标签”出现在想要被跳转到的文章位置,html标签除了单标签外均要符合“有头()必有尾()”的原则。头尾之间的“跳转提示”是可有可无的。

  4. “a标签”中的“id”值即是为正文中添加链接时设定的“自定义索引值”,这里通过“id”的值实现从正文的链接跳转至指定位置的功能。

  • 例:

1.有跳转提示语

2.无跳转提示语

4. 加载指定网页源代码

① 使用场景

想要在Jupyter Notebook中直接加载指定网站的源代码到笔记本中。

② 方法

执行以下命令:

%load URL  

其中,URL为指定网站的地址。

③ 例

加载指定网站源代码

5. 加载本地Python文件

① 使用场景

想在Jupyter Notebook中加载本地的Python文件并执行文件代码。

② 方法

执行以下命令:

%load Python文件的绝对路径  

③ 注意

  1. Python文件的后缀为“.py”。

  2. “%load”后跟的是Python文件的**「绝对路径」**。

  3. 输入命令后,可以按CTRL 回车来执行命令。第一次执行,是将本地的Python文件内容加载到单元格内。此时,Jupyter Notebook会自动将“%load”命令注释掉(即在前边加井号“#”),以便在执行已加载的文件代码时不重复执行该命令;第二次执行,则是执行已加载文件的代码。

④ 例

加载本地Python文件

6. 直接运行本地Python文件

① 使用场景

不想在Jupyter Notebook的单元格中加载本地Python文件,想要直接运行。

② 方法

执行命令:

%run Python文件的绝对路径  

!python3 Python文件的绝对路径  

!python Python文件的绝对路径  

③ 注意

  1. Python文件的后缀为“.py”。

  2. “%run”后跟的是Python文件的**「绝对路径」**。

  3. “!python3”用于执行Python 3.x版本的代码。

  4. “!python”用于执行Python 2.x版本的代码。

  5. “!python3”和“!python”属于 !shell命令 语法的使用,即在Jupyter Notebook中执行shell命令的语法。

  6. 输入命令后,可以按 CTRL 回车 来执行命令,执行过程中将不显示本地Python文件的内容,直接显示运行结果。

④ 例

直接运行Python文件

7. 在Jupyter Notebook中获取当前位置

① 使用场景

想要在Jupyter Notebook中获取当前所在位置的**「绝对路径」**。

② 方法

%pwd  

!pwd  

③ 注意

  1. 获取的位置是当前Jupyter Notebook中创建的笔记本所在位置,且该位置为**「绝对路径」**。

  2. “!pwd”属于 !shell命令 语法的使用,即在Jupyter Notebook中执行shell命令的语法。

④ 例

获取当前路径

8. 在Jupyter Notebook使用shell命令

① 方法一——在笔记本的单元格中

⑴ 语法
!shell命令  
  • 在Jupyter Notebook中的笔记本单元格中用英文感叹号“!”后接shell命令即可执行shell命令。
⑵ 例

shell命令

② 方法二——在Jupyter Notebook中新建终端

⑴ 启动方法

在Jupyter Notebook主界面,即“File”界面中点击“New”;在“New”下拉框中点击“Terminal”即新建了终端。此时终端位置是在你的家目录,可以通过pwd命令查询当前所在位置的绝对路径。

⑵ 关闭方法

在Jupyter Notebook的“Running”界面中的“Terminals”类目中可以看到正在运行的终端,点击后边的“Shutdown”即可关闭终端。

⑶ 例

终端

9. 隐藏笔记本输入单元格

① 使用场景

在Jupyter Notebook的笔记本中无论是编写文档还是编程,都有输入(In [])和输出(Out [])。当我们编写的代码或文档使用的单元格较多时,有时我们只想关注输出的内容而暂时不看输入的内容,这时就需要隐藏输入单元格而只显示输出单元格。

② 方法一

⑴ 代码
from IPython.display import display  
from IPython.display import HTML  
import IPython.core.display as di # Example: di.display\_html('<h3>%s:</h3>' % str, raw=True)  # 这行代码的作用是:当文档作为HTML格式输出时,将会默认隐藏输入单元格。  
di.display\_html('<script>jQuery(function() {if (jQuery("body.notebook\_app").length == 0) { jQuery(".input\_area").toggle(); jQuery(".prompt").toggle();}});</script>', raw=True)  # 这行代码将会添加“Toggle code”按钮来切换“隐藏/显示”输入单元格。  
di.display\_html('''<button onclick="jQuery('.input\_area').toggle(); jQuery('.prompt').toggle();">Toggle code</button>''', raw=True)  

在笔记本第一个单元格中输入以上代码,然后执行,即可在该文档中使用“隐藏/显示”输入单元格功能。

  • 缺陷:此方法不能很好的适用于Markdown单元格。
⑵ 例

隐藏/显示方法一

③ 方法二

⑴ 代码
from IPython.display import HTML  HTML('''<script\>  
code\_show=true;   
function code\_toggle() {  if (code\_show){  $('div.input').hide();  } else {  $('div.input').show();  }  code\_show = !code\_show  
}   
$( document ).ready(code\_toggle);  
</script\>  
<form action\="javascript:code\_toggle()"\><input type\="submit" value\="Click here to toggle on/off the raw code."\></form\>''')  

在笔记本第一个单元格中输入以上代码,然后执行,即可在该文档中使用“隐藏/显示”输入单元格功能。

  • 缺陷:此方法不能很好的适用于Markdown单元格。
⑵ 例

隐藏/显示方法二

10. 魔术命令

由于目前暂时用不到过多的魔术命令,因此暂时先参考官网的文档。

六、增加内核——“ipykernel” ☆

1. 使用场景

  1. 场景一:同时用不同版本的Python进行工作,在Jupyter Notebook中无法切换,即“New”的下拉菜单中无法使用需要的环境。

  2. 场景二:创建了不同的虚拟环境(或许具有相同的Python版本但安装的包不同),在Jupyter Notebook中无法切换,即“New”的下拉菜单中无法使用需要的环境。

接下来将分别用“命令行模式”和“图形界面模式”来解决以上两个场景的问题。顾名思义,“命令行模式”即在终端中通过执行命令来一步步解决问题;“图形界面模式”则是通过在Jupyter Notebook的网页中通过鼠标点击的方式解决上述问题。

“命令行模式”看似比较复杂,且又划分了使用场景,但通过这种方式来解决问题可以更好的了解其中的工作原理,比如,每进行一步操作对应的命令是什么,而命令的执行是为了达到什么样的目的,这些可能都被封装在图形界面上的一个点击动作来完成了。对于想更深入了解其运作过程的朋友,可以接着向下阅读。

2. 解决方法之命令行模式

① 同时使用不同版本的Python

⑴ 在Python 3中创建Python 2内核
⒜ pip安装
  • 首先安装Python 2的ipykernel包。
python2 -m pip install ipykernel  
  • 再为**「当前用户」**安装Python 2的内核(ipykernel)。
python2 -m ipykernel install --user  
  • 注意:“–user”参数的意思是针对当前用户安装,而非系统范围内安装。
⒝ conda安装
  • 首先创建Python版本为2.x且具有ipykernel的新环境,其中“<env_name>”为自定义环境名,环境名两边不加尖括号“<>”。
conda create -n <env\_name\> python=2 ipykernel  
  • 然后切换至新创建的环境。
Windows: activate <env\_name\>  
Linux/macOS: source activate <env\_name\>  
  • 为**「当前用户」**安装Python 2的内核(ipykernel)。
python2 -m ipykernel install --user  
  • 注意:“–user”参数的意思是针对当前用户安装,而非系统范围内安装。
⑵ 在Python 2中创建Python 3内核
⒜ pip安装
  • 首先安装Python 3的ipykernel包。
python3 -m pip install ipykernel  
  • 再为**「当前用户」**安装Python 2的内核(ipykernel)。
python3 -m ipykernel install --user  
  • 注意:“–user”参数的意思是针对当前用户安装,而非系统范围内安装。
⒝ conda安装
  • 首先创建Python版本为3.x且具有ipykernel的新环境,其中“<env_name>”为自定义环境名,环境名两边不加尖括号“<>”。
conda create -n <env\_name\> python=3 ipykernel  
  • 然后切换至新创建的环境。
Windows: activate <env\_name\>  
Linux/macOS: source activate <env\_name\>  
  • 为**「当前用户」**安装Python 3的内核(ipykernel)。
python3 -m ipykernel install --user  
  • 注意:“–user”参数的意思是针对当前用户安装,而非系统范围内安装。

② 为不同环境创建内核

⑴ 切换至需安装内核的环境
Windows: activate <env\_name\>  
Linux/macOS: source activate <env\_name\>  
  • 注意:“<env_name>”是需要安装内核的环境名称,环境名两边不加尖括号“<>”。
⑵ 检查该环境是否安装了ipykernel包
conda list  

执行上述命令查看当前环境下安装的包,若没有安装ipykernel包,则执行安装命令;否则进行下一步。

conda install ipykernel  
⑶ 为当前环境下的当前用户安装Python内核
  • 若该环境的Python版本为2.x,则执行命令:
python2 -m ipykernel install --user --name <env\_name\> --display-name "<notebook\_name\>"  
  • 若该环境的Python版本为3.x,则执行命令:
python3 -m ipykernel install --user --name <env\_name\> --display-name "<notebook\_name\>"  
  • 注意:
  1. “<env_name>”为当前环境的环境名称。环境名两边不加尖括号“<>”。

  2. “<notebook_name>”为自定义显示在Jupyter Notebook中的名称。名称两边不加尖括号“<>”,但**「双引号必须加」**。

  3. “–name”参数的值,即“<env_name>”是Jupyter内部使用的,其目录的存放路径为~/Library/Jupyter/kernels/。如果定义的名称在该路径已经存在,那么将自动覆盖该名称目录的内容。

  4. “–display-name”参数的值是显示在Jupyter Notebook的菜单中的名称。

⑷ 检验

使用命令jupyter notebook启动Jupyter Notebook;在“Files”下的“New”下拉框中即可找到你在第⑶步中的自定义名称,此时,你便可以尽情地在Jupyter Notebook中切换环境,在不同的环境中创建笔记本进行工作和学习啦!

3. 解决方法之图形界面模式

① 你创建了一个新的环境,但却发现在Jupyter Notebook的“New”中找不到这个环境,无法在该环境中创建笔记本。

图形界面_问题

② 进入Jupyter Notebook → Conda → 在“Conda environment”中点击你要添加ipykernel包的环境 → 左下方搜索框输入“ipykernel” → 勾选“ipykernel” → 点击搜索框旁的“→”箭头 → 安装完毕 → 右下方框内找到“ipykernel”说明已经安装成功。

图形界面_解决

③ 在终端CTRL C关闭Jupyter Notebook的服务器然后重启Jupyter Notebook,在“File”的“New”的下拉列表里就可以找到你的环境啦。

图形界面_验证

七、Jupyter Notebook快捷键

1. Mac与Windows特殊按键对照表

符号Mac按键Windows按键
command
controlctrl
optionalt
shiftshift
returnreturn
spacespace
tabtab
deletebackspace
fn deletedelete
---

2. Jupyter Notebook笔记本的两种模式

① 命令模式

  • 命令模式将键盘命令与Jupyter Notebook笔记本命令相结合,可以通过键盘不同键的组合运行笔记本的命令。

  • esc键进入命令模式。

  • 命令模式下,单元格边框为灰色,且左侧边框线为蓝色粗线条。

命令模式

② 编辑模式

  • 编辑模式使用户可以在单元格内编辑代码或文档。

  • enterreturn键进入编辑模式。

  • 编辑模式下,单元格边框和左侧边框线均为绿色。

编辑模式

3. 两种模式的快捷键

① 命令模式

快捷键用途
F查找和替换
进入编辑模式
⌘⇧F打开命令选项板
⌘⇧P打开命令选项板
P打开命令选项板
⇧↩运行当前单元格并选中下一个单元格
⌃↩运行选中单元格
⌥↩运行当前单元格并且在下方插入单元格
Y将单元格切换至code状态
M将单元格切换至markdown状态
R将单元格切换至raw状态
1将单元格设定一级标题
2将单元格设定二级标题
3将单元格设定三级标题
4将单元格设定四级标题
5将单元格设定五级标题
6将单元格设定六级标题
选中上方单元格
K选中上方单元格
选中下方单元格
J选中下方单元格
⇧K向上多选单元格
⇧↑向上多选单元格
⇧J向下多选单元格
⇧↓向下多选单元格
A在上方插入单元格
B在下方插入单元格
X剪切选中单元格
C复制选中单元格
⇧V粘贴到上方单元格
V粘贴到下方单元格
Z撤销删除
D, D删除选中单元格
⇧M合并选中单元格,若直选中一个则与下一个单元格合并
⌘S保存
S保存
L转换行号
O转换输出
⇧O转换滚动输出
H显示快捷键帮助
I, I中断Notebook内核
O, O重启Notebook内核
esc关闭页面
Q关闭页面
⇧L转换所有单元格行号且设置持续有效
⇧␣向上滚动
向下滚动

② 编辑模式

Mac快捷键Windows快捷键用途
代码补全或缩进
⇧⇥⇧⇥提示
⌘]⌃]向后缩进
⌘[⌃[向前缩进
⌘A⌃A全选
⌘Z⌃Z撤销
⌘/
注释
⌘D
删除该行内容
⌘U
撤销
⌘↑⌃↑光标跳转至单元格起始位置
⌘↓⌃↓光标跳转至单元格最终位置
⌥←⌃←光标位置左移一个单词
⌥→⌃→光标位置右移一个单词
⌥⌫⌃⌫删除前边一个单词
⌥⌦⌃⌦删除后边一个单词
⌘⇧Z⌃Y重做
⌘⇧U⌃⇧Z重做
⌘⌫⌃⌫删除该行光标左边内容
⌘⌦⌃⌦删除该行光标右边内容
⌃M⌃M进入命令模式
escesc进入命令模式
⌘⇧F
打开命令选项板
⌘⇧P
打开命令选项板
⇧↩⇧↩运行当前单元格并选中下一个单元格
⌃↩⌃↩运行选中单元格
⌥↩⌥↩运行当前单元格并且在下方插入单元格
⌃⇧-⌃⇧-以光标所在位置分割单元格
⌘S⌃S保存
下移光标
上移光标

4. 查看和编辑快捷键

① 查看快捷键

① 进入Jupyter Notebook主界面“File”中。

② 在“New”的下拉列表中选择环境创建一个笔记本。

③ 点击“Help”。

④ 点击“Keyboard Shortcuts”。

② 编辑快捷键

⑴ 方法一

① 进入Jupyter Notebook主界面“File”中。

② 在“New”的下拉列表中选择环境创建一个笔记本。

③ 点击“Help”。

④ 点击“Keyboard Shortcuts”。

⑤ 弹出的对话框中“Command Mode (press Esc to enable)”旁点击“Edit Shortcuts”按钮。

⑵ 方法二

① 进入Jupyter Notebook主界面“File”中。

② 在“New”的下拉列表中选择环境创建一个笔记本。

③ 点击“Help”。

④ 点击“Edit Keyboard Shortcuts”。

③ 例

查看和编辑快捷键

八、关闭和退出

1. 关闭笔记本和终端

当我们在Jupyter Notebook中创建了终端或笔记本时,将会弹出新的窗口来运行终端或笔记本。当我们使用完毕想要退出终端或笔记本时,仅仅**「关闭页面」**是无法结束程序运行的,因此我们需要通过以下步骤将其完全关闭。

① 方法一

⑴ 进入“Files”页面。

⑵ 勾选想要关闭的“ipynb”笔记本。正在运行的笔记本其图标为绿色,且后边标有“Running”的字样;已经关闭的笔记本其图标为灰色。

⑶ 点击上方的黄色的“Shutdown”按钮。

⑷ 成功关闭笔记本。

  • 注意:此方法只能关闭笔记本,无法关闭终端。

② 方法二

⑴ 进入“Running”页面。

⑵ 第一栏是“Terminals”,即所有正在运行的终端均会在此显示;第二栏是“Notebooks”,即所有正在运行的“ipynb”笔记本均会在此显示。

⑶ 点击想要关闭的终端或笔记本后黄色“Shutdown”按钮。

⑷ 成功关闭终端或笔记本。

  • 注意:此方法可以关闭任何正在运行的终端和笔记本。

③ 注意

⑴ 只有“ipynb”笔记本和终端需要通过上述方法才能使其结束运行。

⑵ “txt”文档,即“New”下拉列表中的“Text File”,以及“Folder”只要关闭程序运行的页面即结束运行,无需通过上述步骤关闭。

④ 演示

关闭笔记本和终端

2. 退出Jupyter Notebook程序

如果你想退出Jupyter Notebook程序,仅仅通过关闭网页是无法退出的,因为当你打开Jupyter Notebook时,其实是启动了它的服务器。

你可以尝试关闭页面,并打开新的浏览器页面,把之前的地址输进地址栏,然后跳转页面,你会发现再次进入了刚才“关闭”的Jupyter Notebook页面。

如果你忘记了刚才关闭的页面地址,可以在启动Jupyter Notebook的终端中找到地址,复制并粘贴至新的浏览器页面的地址栏,会发现同样能够进入刚才关闭的页面。

因此,想要彻底退出Jupyter Notebook,需要关闭它的服务器。只需要在它启动的终端上按:

  • Mac用户:control c

  • Windows用户:ctrl c

然后在终端上会提示:“Shutdown this notebook server (y/[n])?”输入y即可关闭服务器,这才是彻底退出了Jupyter Notebook程序。此时,如果你想要通过输入刚才关闭网页的网址进行访问Jupyter Notebook便会看到报错页面。


 总结

如果是初学python爬虫,觉得自学比较难的,那么我接下来分享的这全套 Python 学习资料一定不要错过,希望能给那些想学习 Python 的小伙伴们带来帮助!

python学习路线

环境搭建

使用 Python 首先需要搭建 Python 环境,我们直接到 Python 官网 下载自己对应平台和版本的安装包进行安装即可

python开发工具

俗话说:工欲善其事,必先利其器,Python 的学习也是一样,新手建议首选 PyCharm,可以快速上手,减少配置时间。

学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

在这里插入图片描述
配套600集视频:

在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


以上资料已经打包好了,朋友们如果需要可以威x信扫描上方二维码免费获得【保证100%免费】 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

window下安装rust 及 vscode配置

安装 安装mingw64 &#xff08;c语言环境 选择posix-ucrt&#xff09; ucrt:通用c运行时库配置mingw64/bin的路径到环境变量中在cmd窗口中输入命令 "gcc -v" 4. 下载Rust安装程序 安装 Rust - Rust 程序设计语言 5. 配置rustup和cargo目录 &#xff08;cargo是包管…

RHCE的学习(13)

第十章openEuler简介 概述 openEuler的前身是运行在华为公司通用服务器上的操作系统EulerOS。 EulerOS是一款基于Linux内核的开源操作系统&#xff0c;支持X86和ARM等多种处理器架构&#xff0c;伴随着华为公司鲲鹏芯片的研发&#xff0c;EulerOS 理所当然地成为与鲲鹏芯片配…

ElasticSearch 添加IK分词器

ElasticSearch 添加IK分词器 前言一、IK分词器的算法二、Ik分词器的下载安装&#xff08;Winows 版本&#xff09;三、Ik分词器的下载安装&#xff08;Linux 版本&#xff09;四、验证测试&#xff08;postman工具&#xff09;测试 ik_smart 分词算法测试 ik_max_word 分词算法…

被复线远传节点机JR-IPAM-1600

产品描述 JR-IPAM-1600J是一款被复线远传节点机&#xff0c;通过传统双绞线电缆&#xff08;被复线\网线\对数电缆\矿用电缆等&#xff09;&#xff0c;用户就可以快速组成一个高速的传输网、局域网。它具有传输速率高、运行稳定、快速安装部署的特点&#xff0c;设备特有的AU…

window中借助nginx配置vite+vue项目的反向代理步骤

在官网下载好nginx的安装包后&#xff0c;解压后 CMD打开 start nginx 是启动命令 nginx -s stop 停止服务 nginx -s reload 如果重写了nginx.conf文件&#xff0c;要执行这条命令 正常情况下 成功启动和成功停止服务长这样 错误情况&解决 如果nginx -s stop失败 ngi…

移动取证和 Android 安全

当今的数字时代已经产生了许多技术进步&#xff0c;无论是智能手机还是虚拟现实、人工智能和物联网 (IoT) 等下一代基础技术。 智能手机已不再只是奢侈品&#xff0c;而是我们生存所必需的东西。根据各种统计数据&#xff0c;如今全球有超过 50% 的人使用手机。 由于数据存储…

图神经网络(GNN)入门笔记(1)——图信号处理与图傅里叶变换

一、信号处理&#xff1a;时域与频域 时域&#xff08;Time Domain&#xff09;是我们生活中常见的信号表示方式&#xff0c;以横轴为时间&#xff0c;纵轴为信号该时刻的强度&#xff08;幅度&#xff09;&#xff0c;就可以得到一张时域图。打个比方&#xff0c;通过每时每刻…

Cent OS-7的Apache服务配置

WWW是什么&#xff1f; WWW&#xff08;World Wide Web&#xff0c;万维网&#xff09;是一个全球性的信息空间&#xff0c;其中的文档和其他资源通过URL标识&#xff0c;并通过HTTP或其他协议访问。万维网是互联网的一个重要组成部分&#xff0c;但它并不是互联网的全部。互联…

开放式耳机如何选择?五款千万不能错过的开放式耳机机型推荐

在这里我先做一个行业的知识科普&#xff0c;目前市场上有超过80%的品牌&#xff0c;都是非专业的开放式耳机品牌&#xff0c;也就是跨界大牌或者网红品牌&#xff0c;这些品牌由于没有开放式声学的技术沉淀&#xff0c;在制作开放式耳机的时候&#xff0c;通常都是直接套用传统…

补一下 二维 平面直角坐标系 到三维

上一篇帖子写到 二维的平面直角坐标系&#xff0c;是那样的&#xff0c;这次补充一下三维的。首先需要&#xff0c;安装一个包&#xff0c;如下&#xff1a; 然后&#xff0c;把参数输入&#xff0c;输入这个坐标系的参数&#xff0c;如下&#xff1a; 这样就可以输出如下的三…

bat调用Perl脚本接收不到参数

perl -d checkLog.pl --logfileE:\temp4\test.log --batch-name"Test-log"这样写在BAT文件里肯定能接收到参数 checkLog.pl --logfileE:\temp4\test.log --batch-name"Test-log" 但当这样写时,就不一定能接受到参数了! 现象:在Win11系统上还好,只需要在*.…

【机器学习】决定系数(R²:Coefficient of Determination)

决定系数&#xff0c;也称为 R 平方&#xff0c;是一种用于衡量回归模型预测效果的统计指标。它表示了模型解释目标变量总变异的程度&#xff0c;数值介于 0 和 1 之间&#xff0c;数值越接近 1 表明模型的解释力越强。 1. 的定义和公式 的公式如下&#xff1a; 其中&#xf…

推荐JDK1.8 API 中文文档

jdk api 1.8_google.CHM 一&#xff0c;CHM文件下载 最近更新 链接: 百度网盘 请输入提取码 提取码: e4rx 备用 链接: 百度网盘 请输入提取码 提取码: gczr 二&#xff0c;在线下载地址 https://www.oracle.com/java/technologies/javase-jdk8-doc-downloads.html 三&…

AscendC从入门到精通系列(一)初步感知AscendC

1 什么是AscendC Ascend C是CANN针对算子开发场景推出的编程语言&#xff0c;原生支持C和C标准规范&#xff0c;兼具开发效率和运行性能。基于Ascend C编写的算子程序&#xff0c;通过编译器编译和运行时调度&#xff0c;运行在昇腾AI处理器上。使用Ascend C&#xff0c;开发者…

静态库、动态库、framework、xcframework、use_frameworks!的作用、关联核心SDK工程和测试(主)工程、设备CPU架构

1.1库的概念 库&#xff1a;程序代码的集合&#xff0c;编译好的二进制文件加上头文件供使用&#xff0c;共享程序代码的一种方式。 1.2库的分类 根据开源情况分为&#xff1a;开源库&#xff08;能看到具体实现&#xff09;、闭源库&#xff08;只公开调用的的接口&#xf…

天地图入门|标注|移动飞行|缩放,商用地图替换

“天地图”是国家测绘地理信息局建设的地理信息综合服务网站。集成了来自国家、省、市&#xff08;县&#xff09;各级测绘地理信息部门&#xff0c;以及相关政府部门、企事业单位 、社会团体、公众的地理信息公共服务资源&#xff0c;如果做的项目是政府部门、企事业单位尽量选…

Webserver(5.3)线程池实现

目录 线程池locker.hthreadpool.h 线程池 相比于动态地创建子线程&#xff0c;选择一个已经存在的子线程的代价显然要小得多。至于主线程选择哪个子线程来为新任务服务&#xff0c;有多种方式&#xff1a; 主线程使用某种算法来主动选择子线程。最简单、最常用的算法是随机算…

【重装系统后重新配置2】pycharm 终端无法激活conda环境

pycharm 终端无法激活 conda 环境&#xff0c;但是 Windows本地终端是可以激活的 原因是pycharm 默认的终端是 Windows PowerShell 解决方法有两个&#xff1a; 一、在设置里&#xff0c;修改为cmd 二、下面直接选择

云轴科技ZStack助力新远科技开启化工行业智能制造新篇章

新远科技基于云轴科技ZStack Cube超融合和ZStack Zaku容器云平台打造了灵活高效的IT基础设施&#xff0c;实现了IaaS和PaaS层的全面覆盖&#xff0c;优化了资源利用率&#xff0c;降低了硬件成本和运维复杂性&#xff0c;同时强化了数据安全和业务连续性。 化工行业的数字化先…

test 是 JavaScript 中正则表达式对象 (RegExp) 的一种方法,用于测试一个字符串是否匹配某个正则表达式

在你的代码中&#xff0c;test 方法用于验证扫描结果是否符合特定的格式要求。具体来说&#xff0c;/^[A-Za-z\d]{16}$/.test(res.result) 这一行代码用于检查扫描结果 res.result 是否是一个由16个字母或数字组成的字符串。 test 方法的作用 正则表达式匹配&#xff1a; ^ 表…