如何使用Jupyter notebook

Jupyter Notebook

Notebook 已迅速成为处理数据的必备工具。其已知用途包括数据清理和探索、可视化、机器学习大数据分析。GitHub 上面也会自动提供 notebook。借助此出色的功能,你可以轻松共享工作。http://nbviewer.jupyter.org/ 也会提供 GitHub 代码库中的 notebook 或存储在其他地方的 notebook。

Notebook 运行的核心是 notebook 服务器。你通过浏览器连接到该服务器,而 notebook 呈现为 Web 应用。你在 Web 应用中编写的代码通过该服务器发送给内核。内核运行代码并将代码发送回该服务器,之后,任何输出都会返回到浏览器中。保存 notebook 时,它作为 JSON 文件(文件扩展名为 .ipynb)写入到该服务器中。

使用 Jupyter notebook

安装 notebook

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

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

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

查看如何使用Anaconda了解如何使用Anaconda。

启动 notebook 服务器

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

运行此命令时(请自己试一下!),服务器主页会在浏览器中打开。默认情况下,notebook 服务器的运行地址是 http://localhost:8888。如果启动其他服务器,新服务器会尝试使用端口 8888,但由于此端口已被占用,因此新服务器会在端口 8889 上运行。之后,可以通过 http://localhost:8889 连接到新服务器。每台额外的 notebook 服务器都会像这样增大端口号。

Jupyter启动后的界面

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

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

关闭 notebook

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

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

远程运行 notebook

如果你想在本地或者远程的机器上安装Jupyter Notebook,可以参考下面的两个文档。

安装:https://jupyter.org/install.html

运行:https://jupyter.readthedocs.io/en/latest/running.html#running

后台运行使用 jupyter notebook --allow-root > jupyter.log 2>&1 &或者 nohup jupyter notebook --allow-root > jupyter.log 2>&1 &

&让命令后台运行, 并把标准输出写入 jupyter.log 中。nohup表示no hang up, 就是不挂起, 于是这个命令执行后即使终端退出, 也不会停止运行.

Notebook 界面

Cell

新建的一个 notebook 之后,默认就会有一个 cell,也就是下图中蓝色的小框。

Notebook 界面

Cell 可以称为单元格。单元格是你编写和运行代码的地方。

工具栏

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

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

命令面板

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

命令面板

生成目录

conda install -c conda-forge jupyter_contrib_nbextensions

在 Nbexyensions 选项卡中开启 Table of Contents(2) 选项,即可在侧边栏生成目录。

快捷键

Notebook 提供了许多快捷键,我们可以使用shift + command + P呼出命令行面板,在输入keyboard就可以查看快捷键列表。

快捷键列表

键入Esc进入命令模式,即可使用这些快捷键。

Magic 关键字

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

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

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

代码计时

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

测试整个单元格代码运行时间的时候可以添加%%timeit

1
2
3
4
%%timeit
sum = 0
for i in range(100):
    sum += i就会输出
1
3.97 µs ± 150 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

测试整个某个函数代码运行时间的时候可以添加%timeit

1
2
3
4
def sum():
    sum = 0
    for i in range(100):
        sum += i
1
%timeit sum()
1
4.06 µs ± 180 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

在 notebook 中进行调试

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

要详细了解 pdb,请阅读此文档。要退出调试器,在提示符中输入 q 即可。

补充读物

Magic 命令还有很多,我只是介绍了你将会用得最多的一些命令。要了解更多信息,请查看此列表,它列出了所有可用的 Magic 命令。

转换 notebook

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.97 µs ± 150 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)\n"
     ]
    }
   ],
   "source": [
    "%%timeit\n",
    "sum = 0\n",
    "for i in range(100):\n",
    "    sum += i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def sum():\n",
    "    sum = 0\n",
    "    for i in range(100):\n",
    "        sum += i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "4.06 µs ± 180 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)\n"
     ]
    }
   ],
   "source": [
    "%timeit sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

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

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

1
jupyter nbconvert --to html notebook.ipynb

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

像平常一样,要详细了解 nbconvert,请阅读相关文档

更好地使用

现在的技术趋势,则是彻底云端化了,例如Jupyter官方的Binder平台(介绍文 档:https://mybinder.readthedocs.io/en/latest/index.html)和Google提供的 Google Colab环境(介 绍:https://colab.research.google.com/notebooks/welcome.ipynb)。它们让Jupyter Notebook变得和石墨文档、Google Doc在线文档一样,在浏览器点开链接就能运行。

所以,现在当你用Binder打开一份GitHub上的Jupyter Notebook时,你不需要安装任何软件,直接在浏览器 打开一份代码,就能在云端运行。

比如这样一个GitHub文件。在Binder中,你只要输入其对应的GitHub Repository的名字或者URL,就能在 云端打开整个Repository,选择你需要的notebook

另外,还有下面这些 Jupyter Notebook,可以作为实践的第一站。

第一个是Jupyter官方:https://mybinder.org/v2/gh/binder-examples/matplotlib-versions/mpl-v2.0/?filepath=matplotlib_versions_demo.ipynb

第二个是Google Research提供的Colab环境,尤其适合机器学习的实践应 用:https://colab.research.google.com/notebooks/basic_features_overview.ipynb

版权声明:本文为shuiCSDN原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shuiCSDN/article/details/104001192

智能推荐

Jupyter notebook使用

欢迎关注天下博客:http://blog.genesino.com/2017/12/jupyter/ Jupyter notebook (Ipython notebook)是集代码、结果、文档三位一体的文学化可重复程序文档。支持40多种程序语言,Python为原生语言。如果安装了Anaconda,就会自动包含。Anaconda的安装见之前的文档Linux学习 - Conda软件安装方法](http...

便捷使用jupyter notebook

1. jupyter notebook 安装 1.1 安装 jupyter notebook 1.2 安装常见问题 1.2.1 “jupyter command not found” 安装完成后再命令行输入jupyter notebook即可开始使用,mac下可能会显示jupyter command not found,这是由于pip安装jupyter完成后并没有将其加入到...

jupyter notebook使用技巧

1、代码自动补全 (1)安装库 (2)执行 (3)配置 进入jupyter notebook; 在Nbextensions中勾选Hinterland和Table of Contents (4)按Tab使用自动补全 2、简单方法(函数)功能提示 (1)编写函数,括号留白 (2)按住Shift双击Tab 3、魔术命令 (1)%lsmagic查询可用魔术命令 (2)%timeit查询执行时间 4、远程访...

jupyter notebook使用技巧

https://www.zhihu.com/tardis/sogou/art/42468945 1. 快捷键 在jupyter notebook菜单栏有Help按钮,可以查看jupyter的快捷键 2. 将多个变量输出 一般jupyter notebook默认只打印最后一个变量的结果。比如 通过设置InteractiveShell.astnodeinteractivity参数为all,就可以让所有...

jupyter notebook使用大全

使用python的人不可能不会接触jupyter notebook,因为它太实用了,尤其是边写代码边调试的时候。 1. 安装以及打开 安装完成后,在命令行下运行: 便会自动从浏览器打开。 2. 设置 2.1 设置主目录 在命令行输入以下命令生成配置文件: 打开配置文件,找到c.NotebookApp.notebook_dir,去掉注释,并添加自己的启动目录 2.2 修改主题 主题安装命令: 使用 ...

猜你喜欢

Jupyter Notebook使用

不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了。哎呀,这都 8102 年了,除了又大又笨重的 IDE,难道就没有什么简单而直观的办法,让我们这些新手能管理和运行代码吗?     当然有啊,还是免费的咧!   这款神器就叫&...

Jupyter Notebook 使用简介

简介 Jupyter 是一个基于Web浏览器的交互编程笔记本环境, 可以生成同时包含可以运行的代码,文档, 图表, 数学公式等的文档, 易于交流分享. 安装 推荐的安装方式是安装 Anaconda. 安装完 Anaconda 后, Jupyter Notebook 在默认环境上已经安装好了. 这里有一点值得注意, 若你又创建了其他环境, 例如使用 conda create -n tensorflo...

Jupyter notebook使用

ipython与Jupyter notebook使用 一:ipython介绍 安装方法: pip install ipython 科学计算标准工具集的组成部分 IPython是一个免费、开源的项目,支持Linux、Unix、Mac OS X和Windows平台,其官方网址是http://ipython.org/。 IPython中包括各种组件,其中的两个主要组件是:基于终端方式和基于Qt的交互式P...

冒泡排序,及改进方式,性能优化400%>>>附图解加源码

首先源码附上,源码中带有注释,看不懂没关系,源码后面附带图解,最后附上代码效率提升图 源码如下: 方案一:其实实现很简单,两层循环,每次内层迭代出最大的一个值,将其放入数组最后一个位置,外层循环的末端便往前移一位。其原理如下图 方案一代码块: 方案二:优化改进 仔细观察上面的图,我们不难发现当迭代到图下这样的情况时,其实已经全排序好了,但是我们还是需要对它进行1,2,3,4,5,6的迭代,这些情况...

css3常用选择器

先介绍一下基本选择器,如下几种 *:通配符。选择页面的所有元素 E:元素选择器。对页面的一些元素进行选择,如p,div,li等 .class:类选择器 #id:id选择器。一个Id在一个页面中只能选择,这是和类选择器的区别 E F:后代选择器。如ul li。选中ul下的li E>F:子元素选择器。如下,可以用 h1 > strong {color:red;}使h1的子元素strong变...