Python·Jupyter Notebook各种使用方法记录·持续更新
http://blog.csdn.net/tina_ttl/article/details/51031113
Jupyter notebook )前身为IPython Notebook,学习时,可以找两者的教程
一、
2.2 方式二绝招(绝招)
- 进入工作目录文件夹
-
键盘Shift+鼠标右键->在此处打开命令窗口-> 在弹出的命令窗口中输入:Jupyter Notebook
-
Jupyter被打开,定位到当前目录!
三、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如何导入代码
即导入代码到jupyter notebook的cell中
4.1 将本地的.py文件load到jupyter的一个cell中
问题背景:有一个test.py文件,需要将其载入到jupyter的一个cell中
test.py内容如下:
import caffe
SolverName = "/root/workspace"
sovler = caffe.AdamSolver(SolverName)
- 1
- 2
- 3
方法步骤:
(1)在需要导入该段代码的cell中输入
%load test.py #test.py是当前路径下的一个python文件
- 1
(2)运行该cell
利用快捷键“Shift+Enter”,可以看到如下结果:
(3)可以看到,运行后,%load test.py
被自动加入了注释符号#,test.py中的所有代码都被load到了当前的cell中
4.2 从网络load代码到jupyter
-
在cell中输入
%load http://.....
,然后运行该cell,就会将load后面所对应地址的代码load到当前的cell中; -
下面给出一个例子,导入matplotlib中的一个小例子color example code
-
首先,在想要导入该段代码的cell中输入
%load test.py #test.py是当前路径下的一个python文件
- 1
-
然后,Shift+Enter运行,可以看到如下结果:
可以看到,运行后,%load test.py
被自动加入了注释符号#,test.py中的所有代码都被load到了当前的cell中
-
五、Jupyter运行python文件
- 利用jupyter的cell是可以运行python文件的,即在cell中运行如下代码:
%run file.py
file.py为要运行的python程序,结果会显示在该cell中
六、Jupyter一些其他琐碎用法
6.1 jupyter的cell可以作为unix command使用
具体方法为:在unitx command前面加入一个感叹号“!”
例子:
查看python版本:!python --version
运行python文件:!python myfile.py
6.2 Magic functions
还没有太明白,具体细节见The cell magics in IPython
6.3 获取current working directory
即当前运行的代码所在的路径
具体方法:current_path = %pwd
这样得到的current_path就是当前工作路径的字符转
6.4 使用Matplotlib绘图
在Jupyter Notebook中,如果使用Matplotlib绘图,有时是弹不出图像框的,此时,可以在开头加入
%matplotlib inline
- 1
七、Jupyter中的Markdown
7.1 在jupyter中设置link,需要设置两部分:
-
要跳到的位置(the destination)
需要在要跳转到的位置添加下面语句:<a id='the_destination'></a>
- 1
这里的id取值任意赋值,下面在添加链接时要用
-
需要添加链接的文字(an internal hyperlink to the destination),即点击该处可以跳转到the destination,在需要添加链接的文字后面加入:
[需要添加连接的文字](#the_destination)
- 1
-
下面是一个例子:
源码:
效果图:
http://codingpy.com/article/getting-started-with-jupyter-notebook-part-1/
http://www.jianshu.com/p/2d7b91c3746f
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。在本文中,我们将介绍 Jupyter notebook 的主要特性,以及为什么对于希望编写漂亮的交互式文档的人来说是一个强大工具。
在开始使用 notebook 之前,我们先需要安装该库。你可以在 Jupyter 官网上找到完整的步骤。
译者注:其实只要
pip install jupyter
就可以了
jupyter notebook
运行上面的命令之后,你将看到类似下面这样的输出:
[I 20:06:36.367 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret [I 20:06:36.813 NotebookApp] Serving notebooks from local directory: /home/your_username [I 20:06:36.813 NotebookApp] 0 active kernels [I 20:06:36.813 NotebookApp] The IPython Notebook is running at: http://localhost:8888/ [I 20:06:36.813 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
同时,会在你开启 notebook 的文件夹中启动 Jupyter 主界面,如下所示:
如果想新建一个 notebook,只需要点击New
,选择你希望启动的 notebook 类型即可。
这里,因为我只有一个 Python 内核,所以我们运行一个 Python notebook。在新打开的标签页中,我们会看到 notebook 界面,目前里面什么也没有。
notebook 界面由以下部分组成:
- notebook 的名称
- 主工具栏,提供了保存、导出、重载 notebook,以及重启内核等选项
- 快捷键
- notebook 主要区域,包含了 notebook 的内容编辑区
慢慢熟悉这些菜单和选项。如果想要详细了解有关 notebook 或一些库的具体话题,可以使用菜单栏右侧的帮助菜单。
下方的主要区域,由被称为单元格的部分组成。每个 notebook 由多个单元格构成,而每个单元格又可以有不同的用途。
下方截图中看到的是一个代码单元格(code cell),以[ ]
开头。在这种类型的单元格中,可以输入任意代码并执行。例如,输入1 + 2
并按下Shift + Enter
。之后,单元格中的代码就会被计算,光标也会被移动动一个新的单元格中。你会得到如下结果:
根据绿色边框线,我们可以轻松地识别出当前工作的单元格。接下来,我们在第二个单元格中输入些其他代码,例如:
for i in range(5):
print(i)
对上面的代码求值时,你会得到:
和前一个示例一样,代码被计算之后,马上就会显示结果。你应该注意到了,这次没有出现类似Out[2]
这样的文字。这是因为我们将结果打印出来了,没有返回任何的值。
notebook 有一个非常有趣的特性,就是可以修改之前的单元格,对其重新计算,这样就可以更新整个文档了。试着把光标移回第一个单元格,并将1 + 2
修改成2 + 3
,然后按下Shift + Enter
重新计算该单元格。你会发现结果马上就更新成了 5。如果你不想重新运行整个脚本,只想用不同的参数测试某个程式的话,这个特性显得尤其强大。不过,你也可以重新计算整个 notebook,只要点击Cell
-> Run all
即可。
现在我们已经知道了如何输入代码,为什么不尝试着让这个 notebook 更加漂亮、内容更丰富?为此,我们需要使用其他类型的单元格,即 Header单元格和 Markdown单元格。
首先,我们在顶部添加一个 notebook 的标题。选中第一个单元格,然后点击Insert
-> Insert单元格above
(在上方插入单元格)。你会发现,文档的顶部马上就出现了一个新的单元格。点击在快捷键栏中的单元格类型,将其变成一个标题单元格(heading cell):
选中下拉选项中的 Heading。然后会出现一个弹出消息,告诉你如何创建不同层级的标题,这样你就有了一个不同类型的 cell:
这个单元格以#
标记开头,意味着这是一个一级标题。如果需要子标题,可以使用以下标记表示(改变单元格类型时弹出消息中有解释):
# : 一级标题 ## : 二级标题 ### : 三级标题 ...
在#
之后写下文档的标题,然后计算该单元格。你会发现一个样式非常好看的标题。作为示例和练习,我还添加了其他几个标题单元格:
添加好标题之后,我们在编写一些解释,介绍每个代码单元格中的情况。为此,我们要在相应的地方插入单元格,然后将其类型变成 Markdown。然后,计算新的单元格。就这样,你的解释文本就漂亮地渲染出来了!
最后,你可以重命名该 notebook,点击Fiel
-> Rename
,然后输入新的名称。这样,新的名称将会出现在窗口的左上角,在 Jupyter 的标志旁边。
如何本地运行本教程
- 安装Jupyter到本地,详见Jupyter Notebook
- 安装git后,执行git clone
- 到笔记本目录下,执行
jupyter notebook
菜单栏
- File
- Edit
- View
- Insert
- Cell
- Kernel
- Help
File
New Notebook-->Python3
打开一个新笔记
Open...
Make a Copy
Rename
Save and Checkpoint
Checkpoint是一个记录点
Revert to Checkpoint
返回到某一个记录点
Print View
Download as
- ipynb
- py
会将%%
(Jupyter命令)和!
(Unix命令)转换为Python,挺有用的 - md
直接转md,发博客方便 - html
Close and Halt
Edit
都是对Cell操作的,和ToolBar基本一致。
包括复制、粘贴、删除、合并、移动
View
Toggle Header
是否显示头部信息,包括文件名和举例上次保存时间
Toggle ToolBar
是否显示工具栏
Cell ToolBar
- None
啥也不展示 - Edit MetaData
Cell的Json属性{ "slideshow": { "slide_type": "subslide" } }
- Raw Cell format
应该是格式化 - Slideshow
最有用的!用于制作Slides
Insert
Insert Cell Above
Insert Cell Below
Cell
ToolBar里基本都有
Kernel
Restart和Reconnect相关
Change Kernel:换Python环境
Help
一些教程链接
- Python
- IPython
- NumPy(数值数组矩阵运算)
- SciPy(微分积分)
- MatPlotlib(绘图)
- SymPy(数学符号)
- pandas(数据分析,画图)
如何使用Cell?
类型
- Code
可执行的代码,Jupyter命令、Unix命令、各种脚本语言代码 - Markdown
可书写markdown - Raw NBconvert
应该是默认格式(不确定) - Heading
标题级别,相当于html里面的h1、h2……
Jupyter命令
示例
使用%%
前缀或%
,如下写入文件:
%%writefile printName.py
print "Alexander Wang"
Overwriting printName.py
打开刚才写入的文件
%pycat printName.py
magics list
-
$$ $$
用LaTex写公式,$$ P(A \mid B) = \frac{P(B \mid A) , P(A)}{P(B)} $$
-
%%bash
,%%HTML
,%%python2
,%%ruby
指定解释器 -
%load
%load ./printName.py
载入外部脚本 -
%env
设置环境变量 -
%%writefile
可以保存cell下面内容到文件 -
%pycat
弹窗打开文件 -
%pdb
调试程序
-%prun
每个函数消耗的时间 -
%%time
cell内代码的单次运行时间信息 -
%who
列出所有的全局变量
……
快捷键
工具有个键盘图标可以看所有快捷键
Esc + F
在代码中查找、替换Esc + O
在cell和输出结果间切换。Shift + J
或 Shift + Down
选择下一个cell。Shift + K
或 Shift + Up
选择上一个cell。Shift + M
合并cell
使用Unix命令
加前缀!
!pwd
/Users/wanggang/workspace/learn-python
各种脚本语言
-
%%bash
,%%HTML
,%%python2
,%%ruby
指定解释器,默认是启动Jupyter的python解释器
print("hello")
hello
%%bash
echo "hello"
hello
保存后,还可以生成slides,和ppt一样的。
使用Jupyter制作slides
作者:AlexanderWang_z
链接:http://www.jianshu.com/p/2d7b91c3746f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。