1.1 Jupyter Notebook 概述
Anaconda 安装完成后,在开始菜单中选择 Jupyter Notebook 即可启动,如下图(1.png)所示。
1.png
Jupyter notebook特别适合做数据处理、可视化、机器学习和大数据分析。利用该软件可将说明文本、数学方程、
代码和可视化内容全部组合到一个易于共享的文档中。
Jupyter Notebook采用B/S工作模式,其基础架构如下图(2.png)所示。
2.png
Jupyter Notebook的核心是 Notebook Server,用户通过浏览器连接到该服务器。Notebook 呈现为 Web应用,
用户在 Web 应用中编写的代码通过该服务器发送给内核,内核运行代码,并将结果发送回服务器。
任何输出都会返回到浏览器中呈现。保存Notebook 时,它将作为JSON文件(扩展名为.ipynb)写入到服务器
中。启动过程中会出现如下图(3.png)所示的命令行界面,这是Jupyter Notebook的服务器,在Jupyter Notebook
的工作过程中是不能关闭的。
Notebook 服务器默认URL:http://localhost:8888
只要Notebook 服务器仍在运行,随时可通过默认URL 返回到 web 页面。
3.png
Jupyter Notebook启动后会在浏览器中打开一个窗口。在菜单栏中有Files、Running、Clusters、Conda四个
选项,如下图(4.png)所示。
4.png
1.2 新建Notebook
Jupyter Notebook启动后可以通过点击“New”菜单创建新的Notebook、文本文件、文件夹或终端等。如创建
新的Python3的ipynb文件:
点击“New”→“Python3”
Notebook的编辑界面如下图(5.png)所示。
5.png
1.3 单元格
Notebook 中大部分代码编写和执行工作都是在单元格(Cell)中完成,就像在 IDE 软件里输入代码一样,可以
给变量赋值、定义函数和类、导入包等。执行单元格代码可以通过 Shift + Enter 或 Ctrl+Enter来完成。其主要功能和
方法包括两种模式和四种功能。在命令模式下可用快捷键“h”弹出快捷键窗口。
1.3.1 两种模式
1. 编辑模式
编辑模式下用户可将代码或文本输入到单元格,如下图(6.png)所示,其标志是右上角有一只铅笔的图标,单元
格呈绿色。编辑模式下按Esc键或通过运行单元格代码切换至命令模式,编辑模式下的快捷键如下图(7.png)所示。
6.png
在单元格中输入下列代码,按Ctrl+Enter运行并观察出现什么情况。
import numpy as np
import matplotlib.pyplot as plt
points = np.arranges(-5,5,0.01)
x, y = np.meshgrid(points,points)
z = np.sqrt(x**2+y**2)
plt.imshow(z, cmap = plt.cm.gray)
plt.show()
7.png
2. 命令模式
命令模式下用户可进行如下图(8.png)所示,右上角铅笔图标消失,单元格左侧呈蓝色。命令模式下按Enter键
或鼠标双击Cell切换至编辑模式。命令模式下的快捷键如下图(9.png)所示。
8.png
9.png
1.3.2 编辑功能
Cell有四种编辑功能:代码(Code)、标记(Markdown)、Raw NBConvert和标题(Heading),如下图(10.png)所示。
Code用于写代码,Markdown用于文本编辑,Raw NBConvert中的文字或代码等都不会被运行,Heading是用于设
置标题的,这个功能已经包含在Markdown中了。在此主要介绍代码Code和Markdown功能。
10.png
1. Code(代码)编辑功能
在命令模式下,按快捷键Y可进入代码编辑状态,单元格可能出现三类提示符,其对应含义如下表所示:
提示符 |
含义 |
In[ ] |
程序未运行 |
In[1] |
程序运行后 |
In[*] |
程序正在运行 |
2. Markdown(标记)编辑功能
在命令模式下,按快捷键M可进入标记编辑状态,Markdown 是格式化语法,可以加入链接、将文本样式设为粗体
或斜体和设置代码格式。Markdown的详细用法见网址:https://daringfireball.net/projects/markdown/basics。
利用Markdown可直接在代码旁写出叙述性文档。对于Markdown 单元格,同样可通过组合键Shift + Enter或Ctrl +
Enter运行单元格,常用的Markdown用法如下图(11.png)所示。
11.png
1.4 魔法函数
使用魔法函数可以用较简单的方法实现较为复杂的功能。
% :行魔法函数,只对本行代码生效。
%% :Cell魔法函数,在整个Cell中生效,必须放于Cell首行。
%lsmagic :列出所有的魔法函数。
%magic 魔法函数名称:查看该魔法函数的说明。
? 魔法函数名称:查看该魔法函数的说明。
常用的魔法函数及功能如下表所示。
魔法函数 |
作用 |
%run |
调用外部python脚本 |
%timeit |
测试单行语句的执行时间 |
%%timeit |
测试整个单元中代码的执行时间 |
% matplotlib inline |
显示 matplotlib 包生成的图形 |
%%writefile |
写入文件 |
%pdb |
调试程序 |
%pwd |
查看当前工作目录 |
%ls |
查看目录文件列表 |
%reset |
清除全部变量 |
%debug |
bug调试,输入quit退出调试 |
%env |
列出全部环境变量 |
1.5 导出pdf文件
Anaconda安装完成后,可将代码、运行结果以及Markdown导出为pdf文件,但默认情况下该操作会提示“未
安装xelatex”,如下图(12.png)所示。
12.png
两个步骤可以解决这个问题:(1)安装Miktex;(2)修改模板文件。
1.5.1 安装Miktex
打开截图提示的网址:https://nbconvert.readthedocs.io/en/latest/install.html#installing-tex
下载Miktex并按照提示安装,安装完成后重启NoteBook Server。
有些情况需要安装nbconvert pandoc,如需安装,命令如下:
conda install nbconvert pandoc
1.5.2 修改lex模板文件
上述步骤完成后能够生成pdf文件,但无法正常显示中文,通过修改两个lex模版文件来解决:
1. 修改article.tplx(一共有两个)
(1)首先找到article.tplx文件,在Anaconda中的示例路径如下:
C:\ProgramData\Anaconda3\Lib\site-packages\nbconvert\templates\latex
C:\ProgramData\Anaconda3\pkgs\nbconvert-5.4.0-py37_1\Lib\site-packages\nbconvert\templates\latex
(2)用文本编辑器打开article.tplx:
将 “\documentclass[11pt]{article}”
修改为
“\documentclass[11pt]{ctexart}”。
通过上述修改之后,正文中的中文可以正常显示,但是标题上的中文不能正常显示。
2. 修改base.tplx(一共有两个)
(1)注销 fontenc:
将 \usepackage[T1]{fontenc}
修改为:
%\usepackage[T1]{fontenc},即前面加“%”。
(2)修改tittle 生成规则:
将\title{((( nb_title | ascii_only | escape_latex )))}
修改为:
\title{((( nb_title | escape_latex )))},即去掉“ascii_only |”
重新启动NoteBook Server后即可完美导出pdf文件。
网友评论