Jupyter notebook 是什么?

欢迎学习本课程——如何使用 Jupyter notebook。Jupyter notebook 是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。例如,不久前我共享了我最爱的一个 Jupyter notebook ,它分析了 LIGO 实验探测到的两个碰撞的黑洞所发出的引力波。你可以下载数据,运行 notebook 中的代码,重复整个分析,实际上等于你自己探测引力波!

Jupyter Notebook 已迅速成为处理数据的必备工具。其用途包括数据清理和探索、可视化、机器学习和大数据分析。我为我的个人博客创建了一个 notebook 示例,它展示了 notebook 的许多特点。这项工作通常在终端中完成,也即使用普通的 Python shell 或 IPython 完成。可视化在单独的窗口中进行,而文字资料以及各种函数和类脚本包含在独立的文档中。但是,notebook 能将这一切集中到一处,让用户一目了然。

GitHub 上也直接支持 Jupyter notebook 的渲染。借助此出色的功能,你可以轻松地共享工作。http://nbviewer.jupyter.org/ 也会提供 GitHub 代码库中的 notebook ,以及存储在其他地方的 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 服务器都会像这样增大端口号。

打开jupyter notebook时,你可能会看到上面列表中的一些文件和文件夹,具体取决于你在哪里启动服务器。如下图:

在右侧,你可以点击“New”(新建),创建新的 notebook、文本文件、文件夹或终端。“Notebooks”下的列表显示了你已安装的内核。由于我在 Python 3 环境中运行服务器,因此列出了 Python 3 内核。

顶部的选项卡是 Files(文件)、Running(运行)和 Cluster(集群)。Files(文件)显示当前目录中的所有文件和文件夹。点击 Running(运行)选项卡会列出所有正在运行的 notebook。可以在该选项卡中管理这些 notebook。

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

如果在 conda 环境中运行 notebook 服务器,则你还能访问以下所示的“Conda”选项卡。 (需要在terminal中安装“Conda”选项卡,语句为conda install jupyter notebook nb_conda)

可以通过该选项卡管理 Jupyter 中的环境。你可以执行多种操作,例如创建新的环境、安装包、更新包、导出环境。

关闭 Jupyter

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

通过在终端中按两次 Ctrl + C,可以关闭整个服务器。再次提醒,这会立即关闭所有运行中的 notebook,因此,请确保你保存了工作!

Magic关键字

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

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

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

代码计时

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

如果要测算整个单元格的运行时间,请使用 %%timeit(两个百分号)

在notebook嵌入可视化内容

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

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

%config InlineBackend.figure_format = 'retina' 来呈现分辨率较高的图像。

在notebook进行调试

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

当要退出调试时,在ipdb调试窗口输入q就退出调试。

转换notebook

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

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

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

jupyter nbconvert --to html notebook.ipynb

我们也可以在notebook界面中点击File,在弹出的菜单中点击Download as,之后选择我们需要转换的格式。

要将 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

这会在浏览器中打开幻灯片,让你可以演示它.

优达学城深度学习(之四)——jupyter notebook相关推荐

  1. 优达学城 深度学习 任务1

    这几天刚好有环境,打算学习一下深度学习 看了一圈介绍,发现优达学城的深度学习课程作为入门课程还是不错的 今天看了第一章节的视频,顺便做了任务1 任务1难度不大,按照网站上的说明可以完成下载.打包等工作 ...

  2. 优达学城-深度学习笔记(一)

    优达学城-深度学习笔记(一) 标签: 机器学习 优达学城-深度学习笔记一 一 神经网络简介 最大似然概率 交叉熵Cross entropy 1交叉熵代码实现 2多类别交叉熵 对数几率回归的误差函数co ...

  3. 优达学城 深度学习 任务2

    不得不说优达学城的课程作为入门还真是不错,打算明年买一个纳米课程试一下. 说明 任务2可以说是真正开始进入深度学习的领域 还是用任务1处理好的数据集 任务分为3个阶段 梯度下降算法(线性分类器) 批随 ...

  4. 优达学城深度学习之三(上)——卷积神经网络

    学习如何用神经网络来解决分类问题. 开始都会说什么是机器学习?机器学习的应用是什么?用机器在海量数据中学习得到可以解决一类问题的办法,这就是我的理解.图像处理.文本处理.无人驾驶.等,深度学习最热门的 ...

  5. 优达学城深度学习之六——TensorFlow卷积神经网络

    TensorFlow卷积层 TensorFlow 提供了 tf.nn.conv2d() 和 tf.nn.bias_add() 函数来创建你自己的卷积层. # Output depth k_output ...

  6. 优达学城深度学习之七——TensorFlow卷积神经网络

    一.胶囊网络 池化运算会丢失一些图像信息.这是因为为了获得更小的特征级图像表示,池化会丢弃像素信息.与池化层相比,有一些分类方法不会丢弃空间信息,而是学习各个部分之间的关系(例如眼睛.鼻子和嘴之间的空 ...

  7. 优达学城深度学习之五——卷积神经网络

    梯度下降算法推导与实现 import matplotlib.pyplot as plt import numpy as np import pandas as pd#Some helper funct ...

  8. 优达学城深度学习之三(下)——卷积神经网络

    一.One-Hot编码 计算机在表示多结果的分类时,使用One-Hot编码是比较常见的处理方式.即每个对象都有对应的列. 二.最大似然率 下面是两幅图像,比较两幅图像,试通过概率的方法来讨论一下为什么 ...

  9. 优达学城深度学习之二——矩阵数学和Numpy复习

    一.数据维度 维度(scalar),张量(Tensor).3表示零维张量,[1 2 3]表示一维张量,矩阵表示二维张量,任何大于二维张量就叫张量(Tensor).如下图所示: 二.Numpy简介 2. ...

最新文章

  1. YML(2)yml 语法
  2. ​【特征工程】时序特征挖掘的奇技淫巧
  3. 应对618,京东到家订单系统高可用架构的迭代实战
  4. xmake新增对WDK驱动编译环境支持
  5. Eclipse插件打开编辑器
  6. 迁移数据库到SQL on Linux Docker
  7. 2017.9.7 翻硬币 失败总结
  8. apipost预执行脚本中发送一个请求的方法
  9. expec不管异常 try_JUnit测试异常
  10. 中国 AI 开发者真实现状:写代码这条路,会走多久?
  11. c++程序查重系统设计思路
  12. Linux平台串口读取GPS每次只能收到8个字节 以及 使用LiveGBS 调试 GB28181设备 包括视频 GPS信息等等
  13. php中可以给class添加click,jQuery addClass()方法添加class
  14. css表格随内容变化,css 使表格随着内容自动适应宽度
  15. 云知声深耕智慧医疗,推出单病种质控平台赋能单病种质量控制
  16. Linux下mplayer播放器安装及故障排除
  17. Android中图片圆形设置三种方法介绍
  18. 按键android手机排行榜,【直板全键盘手机推荐】直板键盘手机排行榜
  19. VMware Horizon View 7 规划部署图解
  20. 参加前端培训班哪个好

热门文章

  1. 简单的后台管理系统vue-cli3.0+element-ui
  2. 前端学习之路之CSS (一)
  3. Facebook授权登录
  4. 防止a标签跳转的几种方法
  5. CSS3中的border-radius兼容IE低版本解决方法
  6. 在raspbian上配置apache2/subversion/xdebug及mysql远程访问
  7. 【MIT领导力课程笔记】前Nokia 总裁Ollila——打造移动未来
  8. equals和== 的用法
  9. Web开发技术大会演讲
  10. oracle 查询dbid,查看oracle 数据库的DBID