19.1 Jupyter Notebook概述
说话说得好,“磨刀不误砍柴工”,但有时选择比磨刀更重要。比如,砍树可以用斧头、砍刀、电锯等,如果选择电锯,不断不需要磨刀,而且效率也是其它工具的几倍。
Jupyter Notebook就是一把好用、高效、安全的"电锯"。目前Jupyter Notebook已成为Kaggle比赛中提交代码的主要方式。它广泛用于数据科学和机器学习领域,是运行深度学习实验的首先方法(keras之父、Kaggle竞赛教练 弗朗索∙肖莱所言)。
Jupyter Notebook(此前被称为 IPython notebook)是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于做及时的说明和解释。Jupyter Notebook有以下特点:
(1)编程时具有语法高亮、缩进、tab补全的功能。
(2)可直接通过浏览器运行代码,同时在代码块下方展示运行结果。
(3)以富媒体格式展示计算结果。丰富媒体格式,包括:HTML,LaTeX,PNG,SVG等。
(4)对代码编写说明文档或语句时,支持Markdown语法。
(5)支持使用LaTeX编写数学性说明。
(6)可以直接生成Python脚本、运行Python代码和脚本、或保存为PDF、XML等格式。
(7)可以对冗长的代码拆分为可独立运行的短代码,也可把一些短代码合并为一段长代码。
(8)交互式运行代码,如果后面代码出现问题,不必运行前面的代码。
19.2安装配置Python
(1)连接到Anaconda官网(https://www.anaconda.com/download/)下载对应环境、对应位数的软件包。建议下载Python3系列的,如下图:
(2)把下载软件(Linux对应是一个.sh脚本,大约640M左右,windows环境是一个.exe文件)存放在Linux服务器上,然后执行该脚本即可。
在Linux下安装下安装
①先下载管理包Anaconda2-4.0.0-Linux-x86_64.sh,
②在Linux命令行下运行:
1 |
bash Anaconda2-4.0.0-Linux-x86_64.sh |
③按缺省步骤即可,最后有一个提示,是否把当前路径存放到配置文件.bashrc中,选择 yes就可。
④安装成功后,如果还需要安装或更新其他库,只要在命令行执行:conda install 库名称或conda update 库名称,如安装tensorflow,只需要执行 conda install tensorflow即可。
当然也可用pip安装。
⑤可以用conda list 查看已安装的包或库
在windows下安装:
①从python官网下载Anaconda3-4.4.0-Windows-x86_64.exe或更高版本的,下载时注意选择64位还是32位(window8之后一般都是64位)
②双击该文件,开始执行,基本点next就可
③安装完成后,如果还需要安装或更新其他库,只要在cmd中执行:conda install 库名称或conda update 库名称。
如安装tensorflow,只需要执行 conda install tensorflow即可。当然也可用pip安装
④在cmd中可以用conda list 查看已安装的包或库
conda的常用命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#列出已安装的模块或库及版本 conda list # install package_names conda install package_names (or conda install package_names = version) #update package_names conda update package_names (or conda update package_names = version) #删除package_names conda remove package_names #查看目前可使用的版本 conda search package_names # 更新conda,保持conda最新 conda update conda # 显示配置 conda config --show # 单独显示channels conda config --get channels # 添加 conda-forge channel到源(示例,建议直接通过-c方式指定channel安装) conda config --add channels conda-forge # 通过conda-forge源安装tensorflow 1.10.0 conda install -c conda-forge tensorflow=1.10.0 |
19.3 Jupyter配置
下面是配置Jupyter Notebook的主要步骤。这是在Linux环境的配置方法,如果在window下,无需任何配置,启动Jupyter Notebook之后,自动弹出一个网页(网址为:localhost:8888),点击其中的new下拉菜单,选择pyhton3,就可进行编写代码、运行代码了。
1)生成配置文件
1 |
jupyter notebook --generate-config |
将在当前用户目录下生成文件:.jupyter/jupyter_notebook_config.py
2)生成当前用户登录jupyter密码
打开ipython, 创建一个密文密码
1 2 3 4 |
In [1]: from notebook.auth import passwd In [2]: passwd() Enter password: Verify password: |
3)修改配置文件
1 |
vim ~/.jupyter/jupyter_notebook_config.py |
进行如下修改:
1 2 3 4 |
c.NotebookApp.ip='*' # 就是设置所有ip皆可访问 c.NotebookApp.password = u'sha:ce...刚才复制的那个密文' c.NotebookApp.open_browser = False # 禁止自动打开浏览器 c.NotebookApp.port =8888 #这是缺省端口,也可指定其他端口 |
4)启动jupyter notebook
1 2 |
#后台启动jupyter:不记日志: nohup jupyter notebook >/dev/null 2>&1 & |
然在浏览器上,输入IP:port,即可看到如下类似界面。
然后,点击New下列菜单,选择python3,将弹出Python编写界面,我们就可以在浏览器进行开发调试Python或keras、Tensorflow、Pytorch等程序。
19.4 Jupyter使用实例
以下以Linux环境为例,Windows环境基本相同。
(1)如何执行cell中的代码
同时按Shift键和Enter键即可。以下为代码示例。
1 2 3 |
a="python" b=10.2829 print("开发语言为:{0:s},b显示小数点后两位的结果:{1:.2f}".format(a,b)) |
运行结果
开发语言:python
(2)执行一些简单shell命令
1 2 3 4 5 |
#查看当前目录 !pwd #查看当前目录下的一个文件的前8行 #查看文件内容 ! head -10 test1028.py |
运行结果:
1 2 3 4 5 6 7 8 9 |
#定义一个函数 '''这是一个测试脚本''' def fun01(): name="北京欢迎您!" print(name) #运行函数 if __name__=='__main__': fun01() |
(3)导入该脚本(或模块),并查看该模块的功能简介
(4)执行python脚本
【说明】
为了使该脚本有更好的移植性,可在第一行加上一句#!/usr/bin/python
运行.py文件时,python自动创建相应的.pyc文件,如下图,.pyc文件包含目标代码(编译后的代码),它是一种python专用的语言,以计算机能够高效运行的方式表示python源代码。这种代码无法阅读,故我们可以不管这个文件。
(5)添加注释或说明文档
(6)可以像word文档一样添加目录
为使你的jupyter更加方便快捷,我们可以对notebook内容分章节,然后对这些章节建立目录,我们要浏览或查看某个章节,只需点击对应目录,就可跳到对应位置,非常方便,如下图,需要安装一个扩展模块:jupyter_contrib_nbextensions,使用conda或pip安装,如下命令:conda install -c conda-forge jupyter_contrib_nbextensions
或pip install jupyter_contrib_nbextensions
具体安装配置,可参考以下博文:
https://www.jianshu.com/p/f314e9868cae
下图为效果图:
(7)修改文件名称
jupyter的文件自动保存,名称也是自动生成的,对自动生成的文件名称,我们也可重命名,具体步骤如下;
点击目前文件名称:
然后重命名,并点击rename即可,具体可参考下图:
(8)画图也很方便
以下是画一条抛物线的代码,在jupyter显示图形,需要加上一句:%matplotlib inline,具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import numpy as np import matplotlib.pyplot as plt %matplotlib inline #生成x的正负值 x=np.arange(0,1.1,0.1) x1=np.arange(-1,0,0.1) #合并以上两个数据集 x=np.append(x1,x) #得到y的值 y=x**2+1 ##绘制一个图,长为6,宽为4(默认值是每个单位80像素) plt.figure(figsize=(6,4)) ###在图列中自动显示$间内容 plt.plot(x,y,label="$y=x^2$",color="blue",linewidth=2) plt.xlabel("X") ##X坐标名称 plt.ylabel("Y") ##Y坐标名称 plt.legend(loc='upper center') ##显示图例 plt.show() |
(9)在jupyter 里查看函数、模块的帮助信息也很方便。
查看命令函数及帮助等信息
命令. 然后按tab键 可查看所有的函数
命令? 可查看对应命令的帮助信息
1 2 |
import numpy as np a1=np.array([1,2,6,4,1]) |
查看a1数组,可以使用的函数
查看argmax函数的具体使用方法,只要在函数后加上一个问号(?),然后运行,就会弹出一个详细帮助信息的界面,具体可参考下图:
(10)编写公式也很方便
然后执行该cell,就可看到如下结果:
更多LaTeX的使用方法,可参考:
https://www.jianshu.com/p/93ccc63e5a1b
Pingback引用通告: Python与人工智能 – 飞谷云人工智能