安装 Juptyer Notebook
Jupyter Notebook 简介
jupter Notebook 是一个开源的 Web 应用程序,可以用来创建和共享包含动态代码、方程式、可视化及解释性文本的文档。
其应用包括:数据整理与转换、数值模拟、统计建模、机器学习等等。
更多信息请见 官网
检查 Python 环境
CentOS 7.2 中默认集成了 Python 2.7 ,可以通过下面命令检查 Python 版本:
|
|
安装 pip
pip 是一个 Python 包管理工具,我们使用 yum 命令来安装该工具:
|
|
笔者在自己的机器测试的时候遇到了问题 需要安装 epel-release,解决办法参考传送门
使用下面命令升级 pip 到最新版本:
|
|
非常扯淡,不知道为什么下载的不是最新版本,还得升级。这个要是不熟悉就完蛋了。。。
安装相关依赖
安装 Jupyter 过工程中还需要一些依赖,我们使用一下命令安装他们:
|
|
配置虚拟环境
安装 virtualenv
我们将为 Jupyter 创建一个独立的虚拟环境,与系统自带的 Python 隔离开来,为此,先安装 virtualenv 库:
|
|
创建虚拟环境
创建一个专门的虚拟环境 ,并直接激活进入该环境:
|
|
使用 pip 安装 Jupyter
我们使用 pip 命令安装 jupyter
|
|
配置 Jupyter Notebook
建立项目目录
我们先为 Jupyter 相关文件准备一个目录:
|
|
在建立一个目录作为 /jupyter 运行的根目录:
|
|
准备密码密文
由于我们将以需要密码验证的模式启动 Jupyter ,所以我们要预先生成所需的秘药对应的密文。
生成密文
使用下面的命令,创建一个密文的密码:
|
|
执行后需要输入并确认密码,然后程序会返回一个 'sha1:...'
的密文,我们接下来将会用到它。
|
|
### 修改配置文件
生成配置文件
我们使用 –generate-config 参数生成默认配置文件:
|
|
生成的配置文件在 /root/.jupyter/
目录下。
修改配置
然后在配置文件最下方加入以下配置:
|
|
其中:
c.NotebookApp.password
请将上一步中密文填入此项,包括 sha: 部分。
你也可以直接配置或使用 Nginx
将服务代理到 80 或 443 端口。
启动 Jupyter Notebook
直接启动
使用一下指令启动 Jupyter Notebook:
|
|
创建 Notebook
- 进入
【首页】
首先需要输入前面不走中设置的密码。 - 然后点击右侧的
【new】
,选择 Python2 新建一个 notebook ,这时跳转到编辑界面。 - 现在我们可以看到 /data/jupyter/root/ 目录中出现了一个
Untitled.ipynb
文件,这就是我们刚刚新建的 Notebook 文件。我们建立的所有 Notebook 都将默认以该类型的文件格式保存。
后台运行
直接以 jupyter notebook
命令启动 Jupyter 的方式在连接断开时将会中断,所以我们需要让 Jupyter 服务在后台常驻。
先按 Ctrl + C
并输入 y
停止 Jupyter 服务,然后执行以下命令:
|
|
该命令将使得 Jupyter 在后台运行,并将日志写在 /data/jupyter/jupyter.log 文件中。
准备后续步骤的 Notebook
为了后面实验中实验室的步骤检查器能够更好的工作,此时我们使用以下命令预先创建几份 ipynb 文件:
|
|
使用 Jupyter Notebook
接下来的步骤中如遇到步骤检查未通过,请按下 Ctrl + S 保存,等待步骤检查器确认。
编辑界面
打开 first.ipynb 编辑界面。
Jupyter Notebook 的编辑界面主要由 工具栏 和 内容编辑区 构成。
下方编辑区,由 Cell 组成。每个 notebook 由多个 Cell 构成,每个 Cell 都可以有不同的用途。
Code Cell
新建的 notebook 中包含一个代码 Cell(Code Cell),以 [ ]
开头,在该类型的 Cell 中,可以输入任意代码并执行。如输入:
|
|
然后按下 Shift + Enter
键, Cell 中代码就会被执行,光标也会移动至下个新 Cell 中。我们接着输入:
|
|
再次按下 Shift + Enter
,可以看到这次没有出现 Out[..]
这样的文字。这是因为我们只打印出来了某些值,而没有返回任何的值。
- 按下 Ctrl + S 保存,等待步骤检查器确认。
Heading Cell
新版本中已经没有独立的 Heading Cell
,现在标题被整合在 Markdown Cell
之中。
如果我们想在顶部添加一个的标题。选中第一个 Cell,然后点击 Insert -> Insert Cell Above
。
你会发现,文档顶部马上就出现了一个新的 Cell。点击在工具栏中 Cell 类型(默认为 Code),将其变成 Markdown。接着在 Cell 中写下:
|
|
然后按下 Shift + Enter
键,便可以看到生成了一行一级标题。
- 与 Markdown 语法相同,使用多个#将改变标题级别。
Markdown Cell
上一步中我们尝试了使用 Markdown Cell
。 在该 Cell 中,除标题外其他语法同样支持。比如,我们在一个新的 Cell 中插入以下文本:
|
|
然后按下 Shift + Enter
,即可渲染出相应内容。
高级用法 - HTML
MarkDown Cell
中同样接受 HTML 代码。 这样,你就可以实现更加丰富的样式及结构、添加图片等等。
例如,如果想在 notebook 中添加 Jupyter 的 logo,并且添加 2px 的黑色边框,放置在单元格左侧,可以这样编写
|
|
然后按下 Shift + Enter
,即可渲染出图片。
高级用法 - LaTex
Markdown Cell 还支持 LaTex 语法。 在 Cell 中插入以下本文:
|
|
同样按下 Shift + Enter
,即可渲染出公式。
导出
notebook 支持导出导出为 HTML、Markdown、PDF 等多种格式。
如点击 File -> Download as -> HTML(.html)
,即可下载到 HTML 版本的 notebook。
导出 PDF
其中,导出 PDF 需要其他包的支持,我们需要使用一下命令安装这些依赖:
|
|
注:直接导出 PDF 时 Jupyter 可能会忽略一些 Cell,建议先导出为 HTML,然后使用浏览器将其转为 PDF。
安装 Matplotlib
我们使用 pip 来安装 Matplotlib :
|
|
测试 Matplotlib
我们使用另一个 notebook (matplotlib.ipynb)来测试 Matplotlib。
打开 matplotlib.ipynb 编辑界面。
魔法命令
在第一个 Cell 中,我们插入并执行:
|
|
测试
关于 matplotlib 的使用请移步其官网。
在接下来 Cell 中,我们插入几个官方示例测试:
-
示例代码:/plot_bmh.py
12from numpy.random import betaimport matplotlib.pyplot as pltplt.style.use(‘bmh’)
def plot_beta_hist(ax, a, b):
ax.hist(beta(a, b, size=10000), histtype=”stepfilled”,
bins=25, alpha=0.8, normed=True)
fig, ax = plt.subplots()
plot_beta_hist(ax, 10, 10)
plot_beta_hist(ax, 4, 12)
plot_beta_hist(ax, 50, 12)
plot_beta_hist(ax, 6, 55)
ax.set_title(“‘bmh’ style sheet”)
plt.show()
动手试试
最后,我们来尝试回执一个二次函数图像,可以参考下面代码:
示例代码:/my.py
|
|
搭配 TensorFlow (可选)
TensorFlow是一个采用数据流图,用于数值计算的开源软件库。他灵活的架构让你可以在多平台上展开计算,例如台式计算机中一个或多个CPU(或GPU),服务器,移动设备等等。
TensorFlow 最初由 Google 大脑小组的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
安装 TensorFlow
我们使用 pip 安装相关依赖及 Tensorflow
|
|
测试 TensorFlow
关于 TensorFlow 的使用请移步其官网,这里只是测试其在 Jupiter 中是否可用。
打开 tensorflow.ipynb 编辑界面。
在 Cell 中加入以下代码(整理自官网 MNIST 教程):
示例代码:/tensorflow.py
|
|
按下 Shift + Enter
,学习过程结束后可以看到输出了准确率(92% 左右)。
完成
我们已经成功搭建起了一个 Jupyter Notebook 环境。