zoukankan      html  css  js  c++  java
  • Jupyter notebook入门

    Jupyter notebook入门

    Jupyter notebook 是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。

    Jupyter Notebook 已迅速成为处理数据的必备工具。其用途包括数据清理和探索、可视化、机器学习大数据分析

    安装 Jupyter notebook

    目前,安装 Jupyter 的最简单方法是使用 Anaconda。该发行版附带了 Jupyter notebook。你能够在默认环境下使用 notebook。

    要在 conda 环境中安装 Jupyter notebook,请使用 conda install jupyter notebook。

    也可以通过 pip 使用 pip install jupyter notebook 来获得 Jupyter notebook。

    启动 notebook 服务器

    要启动 notebook 服务器,请在终端或控制台中输入 jupyter notebook。服务器会在你运行此命令的目录中启动。这意味着任何 notebook 文件都会保存在该目录下。你通常希望在 notebook 文件所在的目录中启动服务器,不过你也可以在文件系统中导航到 notebook 文件所在的位置。

    运行此命令时(请自己试一下!),服务器主页会在浏览器中打开。默认情况下,notebook 服务器的运行地址是 http://localhost:8888。该地址的含义是:localhost 表示你的计算机,而 8888 是服务器的通信端口。只要 notebook 服务器仍在运行,你随时都能通过在浏览器中输入 http://localhost:8888 返回到 web 页面中。

    如果同时启动了另一个 notebook 服务器,新服务器会尝试使用端口 8888,但由于此端口已被占用,因此新服务器会在端口 8889 上运行。之后,你可以通过 http://localhost:8889 连接到新服务器。每个额外的 notebook 服务器都会像这样增大端口号。
    你可能会看到上面列表中的一些文件和文件夹,具体取决于你在哪里启动服务器。

    在右侧,你可以点击“New”(新建),创建新的 notebook、文本文件、文件夹或终端。“Notebooks”下的列表显示了你已安装的内核。
    顶部的选项卡是 Files(文件)、Running(运行)和 Cluster(集群)。Files(文件)显示当前目录中的所有文件和文件夹。点击 Running(运行)选项卡会列出所有正在运行的 notebook。可以在该选项卡中管理这些 notebook。

    过去,在 Clusters(集群)中创建多个用于并行计算的内核。现在,这项工作已经由 ipyparallel 接管,因此该选项卡如今用处不多。

    如果在 conda 环境中运行 notebook 服务器,则你还能访问以下所示的“Conda”选项卡。可以通过该选项卡管理 Jupyter 中的环境。你可以执行多种操作,例如创建新的环境、安装包、更新包、导出环境。

    关闭 Jupyter

    通过在服务器主页上选中 notebook 旁边的复选框,然后点击“Shutdown”(关闭),你就可以关闭各个 notebook。但是,在这样做之前,请确保你保存了工作!否则,在你上次保存后所做的任何更改都会丢失。下次运行 notebook 时,你还需要重新运行代码。
    通过在终端中按两次 Ctrl + C,可以关闭整个服务器。再次提醒,这会立即关闭所有运行中的 notebook,因此,请确保你保存了工作!

    notebook 界面

    创建新的 notebook 时,会看到外框为绿色的一个小方框。它称为单元格。单元格是你编写和运行代码的地方。你也可以更改其类型,以呈现 Markdown(一种常用于编写 Web 内容的格式化语法)。在工具栏中点击“Code”,将其改为 Markdown,然后改回来。小型的播放按钮用于运行单元格,而向上和向下的箭头用于上下移动单元格。

    运行代码单元格时,单元格下方会显示输出。单元格还会被编号(左侧会显示 In [1]:)。这能让你知道运行的代码和运行顺序(如果运行了多个单元格的话)。在 Markdown 模式下运行单元格会将 Markdown 呈现为文本。

    工具栏

    从左侧开始,工具栏上的其他控件是:

    • 软盘符号表示“保存”。请记得保存 notebook!
    • + 按钮用于创建新的单元格
    • 然后是用于剪切、复制和粘贴单元格的按钮。
    • 运行、停止、重新启动内核
    • 单元格类型:代码、Markdown、原始文本和标题
    • 命令面板(见下文)
    • 单元格工具栏,提供不同的单元格选项(例如将单元格用作幻灯片)

    命令面板

    小键盘符号代表命令面板。点击它会弹出一个带有搜索栏的面板,供你搜索不同的命令。这能切实帮助你加快工作速度,因此你将无需使用鼠标翻查各个菜单。你只需打开命令面板,然后键入要执行的操作。

    更多事项

    顶部显示了标题。点击它可以将 notebook 重命名。

    右侧是内核类型(在我的例子中是 Python 3),旁边是一个小圆形。在内核运行单元格时,会填充这个小圆形。对于大多数快速运行的操作,并不会填充它。它是一个小型指示器,在代码会运行较久时让你知道其实际是在运行中的。

    工具栏包含了保存按钮,但 notebook 也会定期自动保存。标题右侧会注明最近一次的保存。你可以使用保存按钮手动进行保存,也可以按键盘上的 Esc,然后按 s。按 Esc 键会变为命令模式,而 s 是“保存”的快捷键。我会在后面介绍命令模式和快捷键。

    在“File”(文件)菜单中,你可以选择多种格式进行 notebook 的下载。通常,你会希望将它作为 HTML 文件下载,以便与不使用 Jupyter 的其他人共享。也可以将 notebook 作为普通的 Python 文件下载,此时所有代码都会像平常一样运行。要在博客或文档中使用 notebook,Markdown 和 reST 格式很合适。

    代码单元格

    notebook 中的大部分工作均在代码单元格中完成。这是编写和执行代码的地方。在代码单元格中可以执行多种操作,例如编写代码、给变量赋值、定义函数和类、导入包等。在一个单元格中执行的任何代码在所有其他单元格中均可用。

    Markdown 单元格

    单元格也可用于以 Markdown 编写的文本。Markdown 是格式化语法,可让你加入链接、将文本样式设为粗体或斜体和设置代码格式。像代码单元格一样,按 Shift + Enter 或 Ctrl + Enter 可运行 Markdown 单元格,这会将 Markdown 呈现为格式化文本。加入文本可让你直接在代码旁写出叙述性文档,以及为代码和思路编写文档。

    快捷键

    在编辑模式和命令模式间相互切换。在编辑模式中你可以键入单元格,在命令模式你可以敲击键盘来执行命令,例如创建一个新的单元格和打开一个命令面板。当你选择一个单元格时,你可以通过单元格框线的颜色来分辨出你当前正在使用的模式。在编辑模式中,左边粗框线是绿色的。在命令模式中,左边粗框线是蓝色的。在编辑模式中,你能在单元格中看到一个光标。

    默认情况下,当你能够创建一个新的单元格或者可以移动到下一行,那么你就在命令模式。要进入编辑模式,按Enter或者Return。要从编辑模式返回到命令模式,按Escape。

    命令模式中的帮助命令

    如果你需要查找一个命令,你可以通过在命令模式中按H调出快捷方式列表。

    创建一个新的单元格

    最常见的命令之一是创建一个新的单元格。你可以通过在命令模式按 A 在当前单元格上方创建一个单元格。按 B 在当前选定的单元格下方创建一个单元格。

    行号

    很多时候出于调试的目的在代码中对代码进行编号是很有用的。你可以在命令模式中的代码单元格按 L 打开数字。

    删除单元格

    在一行连续按两次 D 可以删除单元格。这是为了防止出现意外的删除,所以你必须连续按两次键。

    保存笔记本

    笔记本每隔一段时间会自动保存,但是如果你想在这些时间内保存你的工作,按 S 去保存笔记本。如此简单!

    命令面板

    通过Ctrl-Shift-F或者Ctrl-Shift-P(windows谷歌浏览器,其他版本可以参照help )
    你可以在弹出的命令面板中搜索不能用键盘快捷键实现的命令。例如,工作栏上有按钮可以实现上下移动单元格的命令(上下箭头),但是没有相对应的键盘快捷键。要把一个单元格向下移动,你可以打开命令面板键入"move"就会出现移动命令。

    Magic 关键字

    Magic 关键字是可以在单元格中运行的特殊命令,能让你控制 notebook 本身或执行系统调用(例如更改目录)。例如,在 notebook 中可以使用 %matplotlib 将 matplotlib 设置为以交互方式工作。

    Magic 命令的前面带有一个或两个百分号(% 或 %%),分别对应行 Magic 命令和单元格 Magic 命令。行 Magic 命令仅应用于编写 Magic 命令时所在的行,而单元格 Magic 命令应用于整个单元格。

    注意:这些 Magic 关键字是特定于普通 Python 内核的关键字。如果使用其他内核,这些关键字很有可能无效。

    代码计时

    有时候,你可能要花些精力优化代码,让代码运行得更快。在此优化过程中,必须对代码的运行速度进行计时。可以使用 Magic 命令 timeit 测算函数的运行时间

    #比如测函数f()
    %timeit f()
    

    如果要测算整个单元格的运行时间,请使用 %%timeit

    %%timeit
    code
    code
    ...
    code
    

    在 notebook 中嵌入可视化内容

    notebook 允许你将图像与文本和代码一起嵌入。这在你使用 matplotlib 或其他绘图包创建可视化内容时最为有用。在 notebook 中可以使用 %matplotlib 将 matplotlib 设置为以交互方式工作。默认情况下,图形呈现在各自的窗口中。但是,你可以通过命令传递参数,以选择特定的“后端”(呈现图像的软件)。要直接在 notebook 中呈现图形,应将通过命令 %matplotlib inline 内联后端一起使用。

    提示:在分辨率较高的屏幕(例如 Retina 显示屏)上,notebook 中的默认图像可能会显得模糊。可以在 %matplotlib inline 之后使用 %config InlineBackend.figure_format = 'retina' 来呈现分辨率较高的图像。

    在 notebook 中进行调试

    对于 Python 内核,可以使用 Magic 命令 %pdb 开启交互式调试器。出错时,你能检查当前命名空间中的变量。

    转换 notebook

    Notebook 只是扩展名为 .ipynb 的大型 JSON 文件。

    由于 notebook 是 JSON 文件,因此,可以轻松将其转换为其他格式。Jupyter 附带了一个名为 nbconvert 的实用程序,可将 notebook 转换为 HTML、Markdown、幻灯片等格式。

    例如,要将 notebook 转换为 HTML 文件,请在终端中使用

    jupyter nbconvert --to html notebook.ipynb
    
    

    要将 notebook 与不使用 notebook 的其他人共享,转换为 HTML 很有用。而要在博客和其他接受 Markdown 格式化的文本编辑器中显示 notebook,Markdown 很合适。

    创建幻灯片

    在 notebook 中创建幻灯片的过程像平常一样,但需要指定作为幻灯片的单元格和单元格的幻灯片类型。在菜单栏中,点击“View”(视图)>“Cell Toolbar”(单元格工具栏)>“Slideshow”(幻灯片),以便在每个单元格上弹出幻灯片单元格菜单。

    这会在每个单元格上显示一个下拉菜单,让你选择单元格在幻灯片中的显示方式。

    Slides(幻灯片)是你从左向右移动的完整幻灯片。按向上或向下的箭头时,Sub-slides(子幻灯片)会出现在幻灯片中。Fragments(片段)最初是隐藏的,在你按下按钮时会出现。选择 Skip(忽略)会忽略幻灯片中的单元格,而选择 Notes(备注)会将为演讲者保留备注。

    运行幻灯片

    要通过 notebook 文件创建幻灯片,需要使用 nbconvert

        jupyter nbconvert notebook.ipynb --to slides
    
    

    这只是将 notebook 转换为幻灯片必需的文件,你需要向其提供 HTTP 服务器才能真正看到演示文稿。

    要转换它并立即看到它,请使用

    jupyter nbconvert notebook.ipynb --to slides --post serve
    
    

    这会在浏览器中打开幻灯片,让你可以演示它。
    (学习笔记)

  • 相关阅读:
    Docker 私有仓库高级配置
    Docker 私有仓库
    Docker Hub
    访问 Docker 仓库
    Docker 删除容器
    392. 判断子序列
    605. 种花问题
    122. 买卖股票的最佳时机 II
    121. 买卖股票的最佳时机
    406. 根据身高重建队列
  • 原文地址:https://www.cnblogs.com/hjw1/p/8372152.html
Copyright © 2011-2022 走看看