Jupyter Notebook安装的官方网站
安装Jupyter Notebook的先决条件:已经安装了python(python 2.7 或者是python3.3)
具体的安装方法:
conda install jupyter
这样安装完的jupyter不具有New a terminal的功能
经过各种查询才知道,原来是因为windows不具有terminal需要的TTY,所以,windows下的jupyter是不支持Terminal模式的,而且短期内也没有增加这种支持的计划
在其配置文件ipython_notebook_config.py中,有如下一句
# The directory to use for notebooks and kernels.
# c.NotebookApp.notebook_dir = u''
该句就是用来指定其工作空间的,例如,默认的工作空间是:用户名文件夹,例如,现在想要将工作空间变为D:\Jupyter,那么,需要做如下更改(要记得删掉注释#)
# The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = u'D:\Jupyter'
注意:路径最后一级后面不要加符号“\”
jupyter notebook --generate-config
在cmd中输入:ipython profile create
可以找到关于jupyter的配置文件的位置
执行当前cell,并自动跳到下一个cell:Shift Enter
执行当前cell,执行后不自动调转到下一个cell:Ctrl-Enter
是当前的cell进入编辑模式:Enter
退出当前cell的编辑模式:Esc
删除当前的cell:双D
为当前的cell加入line number:单L
将当前的cell转化为具有一级标题的maskdown:单1
将当前的cell转化为具有二级标题的maskdown:单2
将当前的cell转化为具有三级标题的maskdown:单3
为一行或者多行添加/取消注释:Crtl /
撤销对某个cell的删除:z
浏览器的各个Tab之间切换:Crtl PgUp
和Crtl PgDn
快速跳转到首个cell:Crtl Home
快速跳转到最后一个cell:Crtl End
即导入代码到jupyter notebook的cell中
问题背景:有一个test.py文件,需要将其载入到jupyter的一个cell中
test.py内容如下:
import caffe
SolverName = "/root/workspace"
sovler = caffe.AdamSolver(SolverName)
方法步骤:
(1)在需要导入该段代码的cell中输入
%load test.py #test.py是当前路径下的一个python文件
(2)运行该cell
利用快捷键“Shift+Enter”,可以看到如下结果:
(3)可以看到,运行后,%load test.py
被自动加入了注释符号#,test.py中的所有代码都被load到了当前的cell中
在cell中输入%load http://.....
,然后运行该cell,就会将load后面所对应地址的代码load到当前的cell中;
下面给出一个例子,导入matplotlib中的一个小例子color example code
首先,在想要导入该段代码的cell中输入
%load test.py #test.py是当前路径下的一个python文件
然后,Shift+Enter运行,可以看到如下结果:
可以看到,运行后,%load test.py
被自动加入了注释符号#,test.py中的所有代码都被load到了当前的cell中
%run file.py
file.py为要运行的python程序,结果会显示在该cell中
具体方法为:在unitx command前面加入一个感叹号“!”
例子:
查看python版本:!python --version
运行python文件:!python myfile.py
还没有太明白,具体细节见The cell magics in IPython
即当前运行的代码所在的路径
具体方法:current_path = %pwd
这样得到的current_path就是当前工作路径的字符转
在Jupyter Notebook中,如果使用Matplotlib绘图,有时是弹不出图像框的,此时,可以在开头加入
%matplotlib inline
参考1
Markdown 语法手册 (完整整理版)参考
要跳到的位置(the destination)
需要在要跳转到的位置添加下面语句:
<a id='the_destination'>a>
这里的id取值任意赋值,下面在添加链接时要用
需要添加链接的文字(an internal hyperlink to the destination),即点击该处可以跳转到the destination,在需要添加链接的文字后面加入:
[需要添加连接的文字](#the_destination)
下面是一个例子:
源码:
效果图:
conda install -c conda-forge jupyter_contrib_nbextensions
参考文献
[1] 为Jupyter Notebook添加目录
在数据分析的道路上,你一定曾有过为新发现而激动不已的时刻,此时你急于将自己的发现告诉大家,却遇到了这样的问题:如何将我的分析过程清晰地表述出来呢?
为了能与同行们有效沟通,你需要重现整个分析过程,并将说明文字、代码、图表、公式、结论都整合在一个文档中。显然传统的文本编辑工具并不能满足这一需求,所以这儿隆重推荐一款神器 Jupyter Notebook,不仅能在文档中执行代码,还能以网页形式分享。
下图简单展示了Jupyter Notebook 文档的样式,更多示例可在 nbviewer 中找到。
Jupyter Notebook 文档示例
本文将按如下内容来展开:
一、Jupyter Notebook 介绍
二、Jupyter Notebook 使用入门
三、Jupyter Notebook 进阶功能
在介绍 Jupyter Notebook 之前,让我们先来看一个概念:文学编程 ( Literate programming ),这是由 Donald Knuth 提出的编程方法。传统的结构化编程,人们需要按计算机的逻辑顺序来编写代码;与此相反,文学编程则可以让人们按照自己的思维逻辑来开发程序。
简单来说,文学编程的读者不是机器,而是人。 我们从写出让机器读懂的代码,过渡到向人们解说如何让机器实现我们的想法,其中除了代码,更多的是叙述性的文字、图表等内容。这么一看,这不正是数据分析人员所需要的编码风格么?不仅要当好一个程序员,还得当好一个作家。那么 Jupyter Notebook 就是不可或缺的一款集编程和写作于一体的效率工具。
也许说到 Jupyter 你会觉得陌生,但想必你或多或少听过鼎鼎大名的 IPython。其实Jupyter 脱胎于 IPython 项目,IPython 顾名思义,是专注于 Python 的项目,但随着项目发展壮大,已经不仅仅局限于 Python 这一种编程语言了。Jupyter 的名字就很好地释义了这一发展过程,它是 Julia、Python 以及 R 语言的组合,字形相近于木星(Jupiter),而且现在支持的语言也远超这三种了。
以下列举了 Jupyter Notebook 的众多优点:
对于初学者,最简单的方法是安装 Anaconda,因为它自带了 Jupyter Notebook。如果想进一步了解 Anaconda 的使用方法,可参考我的上一篇文章《致Python初学者们 – Anaconda入门使用指南》。
对于有经验的同学,自然使用命令行最为便捷。
如果在 conda 环境中,可以使用如下命令安装:
1
|
conda
install
jupyter
notebook
|
或者直接通过 pip 安装:
1
|
pip
install
jupyter
notebook
|
更多的安装说明请参考官网。
如果使用 Anaconda,可以在其 Navigator 图形界面中点击打开 Notebook。但是最快捷的方法还是在命令行中输入:
1
|
jupyter
notebook
|
此时你的 Web 浏览器被自动打开,显示文件目录。通过点击右上角的 new
创建新文档。
进入 notebook
而关闭 notebook 文档可以通过选择文件名前的复选框后,点击 Shutdown
按钮实现。如果要关闭整个服务,则在原来的终端中按 Control + C
两次。
退出 notebook
Notebook 文档是由一系列单元(Cell)构成,主要有两种形式的单元:
Shift + Enter
运行代码,其结果显示在本单元下方。代码单元左边有 In [1]:
这样的序列标记,方便人们查看代码的执行次序。Shift + Enter
运行 markdown 单元来显示格式化的文本。
Jupyter Notebook 编辑界面
类似于 Linux 的 Vim 编辑器,在 notebook 中也有两种模式:
Enter
键进入编辑模式,此时单元左侧显示绿色竖线。Esc
键进入命令模式,此时单元左侧显示蓝色竖线。如果要使用快捷键,首先按 Esc
键进入命令模式,然后按相应的键实现对文档的操作。比如切换成代码单元(Y
)或 markdown 单元(M
),或者在本单元的下方增加一单元(B
)。查看所有快捷命令可以按H
。
尽管一开始需要花费一些学习成本,但熟练使用快捷键将大大提高工作效率。试想你在键盘上十指如飞时,如果还需要通过鼠标来操作文档,是不是很影响思考速度呢?
如果你曾做过严肃的学术研究,一定对 LaTeX 并不陌生,这简直是写科研论文的必备工具,不但能实现严格的文档排版,而且能编辑复杂的数学公式。在 Jupyter Notebook 的 markdown 单元中我们也可以使用 LaTeX 的语法来插入数学公式。
在文本行中插入数学公式,使用一对 $
符号,比如质能方程 $E = mc^2$
。如果要插入一个数学区块,则使用一对美元$符号。比如下面公式表示 z=x/y:
1
|
$
$
z
=
frac
{
x
}
{
y
}
$
$
|
如何在 notebook 中使用 LaTeX,可进一步参考 A Primer on Using LaTeX in Jupyter Notebooks 这篇文章。
既然Jupyter Notebook 擅长展示数据分析的过程,除了通过网页形式分享外,当然也可以将其制作成幻灯片的形式。这里有一个幻灯片示例供参考,其制作风格简洁明晰。
那么如何用 Jupyter Notebook 制作幻灯片呢?首先在 notebook 的菜单栏选择 View > Cell Toolbar > Slideshow,这时在文档的每个单元右上角显示了 Slide Type 的选项。通过设置不同的类型,来控制幻灯片的格式。有如下5中类型:
Jupyter Notebook 幻灯片设置
当编写好了幻灯片形式的 notebook,如何来演示呢?这时需要使用 nbconvert
:
1
|
jupyter
nbconvert
notebook
.
ipynb
--
to
slides
--
post
serve
|
在命令行中敲入上述代码后,浏览器会自动打开相应的幻灯片。
魔术关键字(magic keywords),正如其名,是用于控制 notebook 的特殊的命令。它们运行在代码单元中,以 %
或者 %%
开头,前者控制一行,后者控制整个单元。
比如,要得到代码运行的时间,则可以使用 %timeit
;如果要在文档中显示 matplotlib 包生成的图形,则使用 % matplotlib inline
;如果要做代码调试,则使用 %pdb
。但注意这些命令大多是在Python kernel 中适用的,其他 kernel 大多不适用。有许许多多的魔术关键字可以使用,更详细的清单请参考 Built-in magic commands 。