• What?
  • Why?
  • How?
  • ---安装
  • ---启动
  • ---关闭
  • ---保存
  • Markdown语法
  • Magic关键词
  • 转换notebook——toHTML
  • 创建幻灯片
  • 运行代码

What?

文字化编程

notebook 是 Donald Knuth 在 1984 年提出的文字表达化编程的一种形式。在文字表达化编程中,直接在代码旁写出叙述性文档,而不是另外编写单独的文档。用 Donald Knuth 的话来说:

让我们集中精力向人们解释我们希望计算机做什么,而不是指示计算机做什么。

归根到底,代码是写给人看到,不是写给计算机看的。notebook 恰恰提供了这种能力。你能够直接在代码旁写出叙述性文档。这不仅对阅读 notebook 的人很有用,而且对你将来回头分析代码也很有用。

说点题外话:最近,文字表达化编程这个概念已经发展成为一门完整的编程语言,即 Eve。

notebook 如何工作

Jupyter notebook 源自 Fernando Perez 发起的 IPython 项目。IPython 是一种交互式 shell,与普通的 Python shell 相似,但具有一些很好的功能(例如语法高亮显示和代码补全)。最初,notebook 的工作方式是,将来自 Web 应用(你在浏览器中看到的 notebook)的消息发送给 IPython 内核(在后台运行的 IPython 应用程序)。内核执行代码,然后将结果发送回 notebook。当前架构与之相似,具体见下图。

摘自 Jupyter 文档

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

Why?

此架构的一个优点是,内核无需运行 Python。由于 notebook 和内核分开,因此可以在两者之间发送任何语言的代码。例如,早期的两个非 Python 内核分别是 R 语言和 Julia 语言。使用 R 内核时,用 R 编写的代码将发送给执行该代码的 R 内核,这与在 Python 内核上运行 Python 代码完全一样。IPython notebook 已被改名,因为 notebook 变得与编程语言无关。新的名称 Jupyter 由 Julia、Python 和 R 组合而成。如果有兴趣,不妨看看可用内核的列表。

另一个优点是,你可以在任何地方运行 notebook 服务器,并且可通过互联网访问服务器。通常,你会在存储所有数据和 notebook 文件的自有计算机上运行服务器。但是,你也可以在远程计算机或云实例(如 Amazon 的 EC2)上设置服务器。之后,你就可以在世界上任何地方通过浏览器访问 notebook。

How?

一、安装 Jupyter notebook

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

也就是说,只要你安装了anaconda,你就同时默认安装了jupyter notebook

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

conda install jupyter notebook

也可以通过 pip 来获得 Jupyter notebook。

pip install jupyter notebook 

二、启动 notebook 服务器

在终端或控制台中输入

 jupyter notebook

服务器会在你运行此命令的目录中启动。

三、关闭 Jupyter

3.1 关闭running的notebook

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

3.2 关闭整个服务器

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

四、保存Notebook

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

Markdown单元格

像代码单元格一样,按 Shift + Enter 或 Ctrl + Enter 可运行 Markdown 单元格,这会将 Markdown 呈现为格式化文本。加入文本可让你直接在代码旁写出叙述性文档,以及为代码和思路编写文档。

  • 链接
[Neo's home page](http://www.cnblogs.com/Neo007/)

效果:

Neo's home page

  • 强调效果

    可以使用星号或下划线( * 或 _ )来表示粗体或斜体,从而添加强调效果。对于斜体,在文本两侧加上一个星号或下划线,例如 _gelato_

    *gelato* 会呈现为 gelato

粗体文本使用两个符号,例如 **aardvark**__aardvark__ 会呈现为 aardvark

只要在文本两侧使用相同的符号,星号和下划线的作用都一样。

  • 代码

    可以通过两种不同的方式显示代码,一种是与文本内联,另一种是将代码块与文本分离。要将代码变为内联格式,请在文本两侧加上反撇号。

    例如,
`string.punctuation`

会呈现为 string.punctuation

要创建代码块,请另起一行并用三个反撇号将文本包起来:

import requests
response = requests.get('https://www.udacity.com')

或者将代码块的每一行都缩进四个空格。


xxxximport requests
xxxxresponse = requests.get('https://www.udacity.com')
  • 数学表达式

在 Markdown 单元格中,可以使用 LaTeX 符号创建数学表达式。notebook 使用 MathJax 将 LaTeX 符号呈现为数学符号。要启动数学模式,请在 LaTeX 符号两侧加上美元符号(例如 \(y = mx + b\)),以创建内联的数学表达式。对于数学符号块,请使用两个美元符号:

$$
y = \frac{a}{b+c}
$$

此功能的确很有用,因此,如果你没有用过 LaTeX,请阅读这篇入门文档,它介绍了如何使用 LaTeX 来创建数学表达式。

Magic关键词

Magic-What?

1.Magic 关键字是可以在单元格中运行的特殊命令,能让你控制 notebook 本身或执行系统调用(例如更改目录)。

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

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

Magic-How?

  1. 交互工作方式
%matplotlib

2.代码计时

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

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

3.在notebook 中嵌入可视化内容

4.在 notebook 中进行调试

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

在上图中,可以看到我尝试对字符串求和,这造成了错误。调试器指出了该错误,并提示你检查代码。

转换notebook


jupyter nbconvert --to html notebook.ipynb

创建幻灯片

运行幻灯片

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

    jupyter nbconvert notebook.ipynb --to slides

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

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

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

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

运行代码

提示:你可以通过单击代码区域,然后使用键盘快捷键 Shift+Enter 或 Shift+ Return 来运行代码。或者在选择代码后使用播放(run cell)按钮执行代码。

小结

这个简短的介绍到此结束,它主要介绍了在数据科学工作流程中的 Python 工具。充分利用 Anaconda 和 Jupyter notebook 不仅能提升你的工作效率,还会让你心情更愉快。要想充分发挥它们的作用,你还要学习很多东西(例如 Markdown 和 LaTeX),但很快你就会知道为何要以其他方式进行数据分析。

安装、配置Jupyter Notebook快速入门教程的更多相关文章

  1. jupyter notebook快速入门教程

    什么是jupyter notebook? 官网:https://jupyter.org/ 上面是官方网址,就简单的介绍下,就不多做解释了,juoyter notebook,就是一个web应用,比较强大 ...

  2. Jupyter Notebook 快速入门

    Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言.在本文中,我们将介绍 Jupyter notebook 的主要特性,以 ...

  3. Jupyter Notebook 快速入门[转]

    Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言.在本文中,我们将介绍 Jupyter notebook 的主要特性,以 ...

  4. Pycharm安装并配置jupyter notebook

    Pycharm安装并配置jupyter notebook Pycharm安装并配置jupyter notebook 一: 安装命令jupyter: pip install jupyter 如果缺少依赖 ...

  5. TensorFlow安装及jupyter notebook配置

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:TensorFlow安装及jupyter notebook配置     本文地址:http:/ ...

  6. MongoDb 快速入门教程

    文章首发于[博客园-陈树义],点击跳转到原文MongoDb 快速入门教程. MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的 ...

  7. .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序

    一.前言 为什么选择VS Code?VS Code 是一款跨平台的代码编辑器,想想他的哥哥VS,并是微软出品的宇宙第一IDE,那作为VS的弟弟,VS Code 也不会差,毕竟微软出品.反正ken是这么 ...

  8. laravel 中CSS 预编译语言 Sass 快速入门教程

    CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量.函数.继承等机制,因此很容易写出大量没有逻辑.难以复用和扩展的代码,在日常开发使用中,如果没 ...

  9. Java 图片处理解决方案:ImageMagick 快速入门教程

    文章首发于[博客园-陈树义],点击跳转到原文Java 图片处理解决方案:ImageMagick 快速入门教程. ImageMagick介绍 ImageMagick是一个免费的创建.编辑.合成图片的软件 ...

随机推荐

  1. Q467 环绕字符串中唯一的子字符串

    把字符串 s 看作是"abcdefghijklmnopqrstuvwxyz"的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrst ...

  2. python 封装,隐藏属性,绑定方法classmethod和staticmethod

    [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内容都隐藏起 ...

  3. my34_脚本冥等添加自动任务-mysql监控部署

    场景: 定义一套添加mysql监控的脚本,在mysql安装完毕后,一键执行添加监控   已有以下的等一系列命令可以读取mysql从库的延迟时间并推向influxdb,变化的部分为 -P 端口.-k k ...

  4. Vue + iview框架,搭建项目遇到的相关问题记录 - 国际化router.js不能实现

    例子展示: 概述: 最近在使用vue + iview框架进行web开发,并且有一个需求,需要实现web端的国际化,在完成相关配置文件后,发现router.js 中无法配置,并且会出现异常,在经过百度找 ...

  5. 《数据密集型应用系统设计》读书笔记-ch1可靠、可扩展与可维护的应用系统

    我们以Twitter为例,使用其2012年11月发布的数据.Twitter的两个典型业务操作是: - 发布tweet消息: 用户可以快速推送新消息到所有的关注者,平均大约4.6k request/se ...

  6. Mac OS X安装OpenGL

    Mac OS X安装OpenGL 安装最新的cmake brew install cmake brew upgrade cmake 安装glew brew install glew 安装GLTools ...

  7. js惊奇效果分享,和排序算法

    分享地址:http://www.cnblogs.com/lhb25/p/8-amazing-codepen-demos.html 排序算法分享地址:http://www.w3cplus.com/js/ ...

  8. SQL Server 2008中的MERGE(数据同步)

    OK,就像标题呈现的一样,SQL Server 2008中的MERGE语句能做很多事情,它的功能是根据源表对目标表执行插入.更新或删除操作.最典型的应用就是进行两个表的同步. 下面通过一个简单示例来演 ...

  9. A space or line break was encountered after the "@" character. Only valid identifiers, keywords, comments, "(" and "{" are valid at the start of a code block and they must occur immediately following

    mvc 控制器调用分布视图出错,("A space or line break was encountered after the "@" character. Only ...

  10. ngnix优化【转】

    nginx的优化 1. gzip压缩优化 2. expires缓存有还 3. 网络IO事件模型优化 4. 隐藏软件名称和版本号 5. 防盗链优化 6. 禁止恶意域名解析 7. 禁止通过IP地址访问网站 ...