jupyter

1 jupyter介绍与使用

jupyter很多人都用过,是能将python R等语言的代码的输入输出以很直观的形式显示的文本文件。格式为ipynb,github也能很好的解析这种格式的文件。例如https://github.com/sunwu51/notebook/blob/master/18.12/ml/2.py.ipynb显示如下

image

其中的4是运行之后的结果,即改格式的文件能将运行后的结果输出显示在文件上面。

1.1 用处

在介绍怎么使用这种格式的文件之前,我们先来看下这样的形式有什么用处。

对于数据科学家来说,可以将输入和输出清晰的放到眼前,便于交流。这比直接在markdown中写上输入输出要更有说服力,因为这里的输出是真正运行后的结果,不存在造假。

对于学习者来说这个笔记本的在线版本(后面会说),可以修改输入,然后重新运行,查看输出的结果。是非常方便的在线运行工具。

1.2 使用

首先保证电脑具有python3.x环境。

$ python --version
Python 3.7.1

安装jupyter

pip install jupyter

新建一个目录,并在该目录下运行jupyter

mkdir test
cd test
jupyter notebook

会在8888端口启动一个web服务,并自动打开页面。
image

在输入中可以写任意的python代码,包括import本地的包。

2 mybinder将代码仓库转为在线jupyter

在研究jupyter的时候发现一个非常有意思的工具mybinder,可以将代码仓库转换成一个在线的jupyter。就是说原来github中的ipynb格式的文件虽然能够解析,但是不能修改输入和重新运行,即不是在线的jupyter。

2.1 使用

访问https://mybinder.org/,输入仓库地址,然后启动即可。这里我从github上随便找了一个jupyter格式的项目。
image

2.2 依赖

上面的例子中我们看出可以将一个项目重新部署成在线jupyter,但是有个问题就是依赖的包会找不到。
image
添加依赖的方式非常简单,就是在仓库的根目录下添加一个requirements.txt文件格式如下

numpy==1.13.1
matplotlib==2.0.2 
seaborn==0.8.1

如果不知道自己本地库的版本,或者不知道自己项目用了哪些库,可以直接pip freeze > requirements.txt会将所有的本地库和版本写到文件中。

有了这个文件后,就能很轻易的引入包了
image

3 azure notebook

功能与上面的类似,不过是微软出品的。除了直接将仓库转为jupyter,azure notebook还可以普通的写日记,可以clone别人的日记项目,是一个更大的生态了。
image

4 小结

上面的两个工具都非常有意思,但是我都不是很推荐使用,主要原因还是略微有点卡,因为服务器都在国外的原因。点击run后总要等待几秒钟才能看到输出。所以我还是建议直接将项目下载下来,然后在本地运行jupyter notebook。