jupyter notebook安装及使用总结

  • 引言
  • jupyter notebook简介和安装
  • jupyter notebook使用
    • bug1:默认浏览器不是谷歌浏览器
    • jupyter使用技巧
    • bug2:matplotlib中文无法显示
    • jupyter引入插件
    • bug3:pdf下载问题
    • 协同开发
    • 虚拟环境切换
  • 总结

引言

本篇博文综合了自己的一些使用过程中遭遇的问题,以及一些常用的快捷键,在这里做一个总结。

jupyter notebook简介和安装

在数据科学领域,笔记、代码、图表和注释往往都是相辅相成不可或缺的,而应运而生的jupyter notebook满足了以上所有的要求,基本所有的不论是学生还是相关从业者都会去使用它,因为它的易学,操作简单,另外作为和anaconda一起配套的工具,下载非常方便。

jupyter notebook安装:

第一种方案是直接去官网下载最新版就行了,在半年前还可能会出现说版本不兼容的问题,比如说TensorFlow只能适配3.5,最新的3.6可能还要退环境或者集成一个低版本的解释器啥的,目前好像没听说这类小问题了,基本能在3.6下完美运行。并且下载过程中直接勾选添加进环境变量,那么只要等进度条安装完,那么anaconda下的所有集成环境就配好了。官网如下:
https://www.anaconda.com/

第二种方案就是在命令行输入pip install jupyter notebook,我不建议用这种方案,虽然很大程度上缩小了使用体积,但如果想要在jupyter notebook上加其它的东西,比如说插件,还有一些环境引起的问题,会导致非常麻烦,另外就是和上面对比,python的版本更新速度永远是快于anaconda的,那么换句话来说,python能装的东西anaconda能装,但anaconda能装的东西python不一定能装,这里就有一个最新与稳定的机制了。我个人比较喜欢稳定。

jupyter notebook使用

安装完成后,在系统开始中,就可以找到anaconda的图标,我们可以直接将jupyter图标移动到桌面上,然后双击运行,或者使用我下面这种方式,先打开anaconda Prompt终端,然后输入jupyter notebook。

jupyter notebook安装及使用总结_第1张图片

看见如上图所示的信息,说明已经启动成功,只要等着浏览器打开就能开始写程序啦。但这里就会出现本篇的第一个bug点。

bug1:默认浏览器不是谷歌浏览器

我们知道作为一个程序员,最常用也是最好用的浏览器那当然是谷歌了,它里面不光是黑科技多,资料查阅也可以说得上全面,再配上一个s或者VPN,那就是如虎添翼了。如果默认浏览器是谷歌的可以忽略此bug。

OK,那么这里的bug问题是jupyter的启动页面是跟着默认浏览器变的,默认浏览器是啥那么启动页面就是运行哪个浏览器,但不知道有没有win10用户和我一样,就是在控制面板的浏览器设置里,无法修改浏览器的默认设置,重置也没用,可能是我在电脑管家里同时下载谷歌和QQ的问题,电脑管家强行帮我选了QQ,而win10的应用配置又和自动更新一样齐坑无比,在我有限的几次重装系统里,每次都会有这个问题,然而我每次都重蹈覆辙。。所以在这里记录一下。

在终端中输入:

jupyter notebook --generate-config

然后我们能看到当前的配置文件在哪里:
在这里插入图片描述

输入N表示不需要覆盖原来的配置,然后我们去这个绝对路径下找到jupyter_notebook_config.py文件,找到后用编辑器打开,这里我推荐sublime text和notepad++,我这里使用的是notepad++,打开后按键ctrl + F,在本文件中查找 c.NotebookApp.browser

找到后将前面注释去掉,再加上下面这一段话:

import webbrowser
webbrowser.register(
    "chrome",  #自定义名字
    None, 
    webbrowser.GenericBrowser(u"C:\\Users\\xuzhenggen\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"))#指定程序所在位置
c.NotebookApp.browser = "chrome"

注意这里上面的自定义名字可以随便写,而路径即为你当前电脑的谷歌浏览器的位置,注意这里路径要用 \\,我也不清楚为什么要这样,按照正则来讲,它和前面的u一样都是转义字符,Windows中用 / 分隔文件,u表示Unicode转义,但这里可能是系统设置问题吧,我们只需要将谷歌的路径复制上去再加一个斜杠就行了。

jupyter notebook安装及使用总结_第2张图片

jupyter使用技巧

启动完成后,我们可以看到我们的页面了,然后我们就可以开始我们写我们的程序了,下面是一些常用的快捷键记录:

命令模式 (按键 Esc 开启) 说明 编辑模式 ( Enter 键启动) 说明
Enter 转入编辑模式 Tab 代码补全或缩进
Shift-Enter 运行本单元,选中下个单元 Shift-Tab 提示
Ctrl-Enter 运行本单元 Ctrl-] 缩进
Alt-Enter 运行本单元,在其下插入新单元 Ctrl-[ 解除缩进
Y 单元转入代码状态 Ctrl-A 全选
M 单元转入markdown状态 Ctrl-Z 复原
R 单元转入raw状态 Ctrl-Shift-Z 再做
1 设定 1 级标题 Ctrl-Y 再做
2 设定 2 级标题 Ctrl-Home 跳到单元开头
3 设定 3 级标题 Ctrl-Up 跳到单元开头
4 设定 4 级标题 Ctrl-End 跳到单元末尾
5 设定 5 级标题 Ctrl-Down 跳到单元末尾
6 设定 6 级标题 Ctrl-Left 跳到左边一个字首
Up 选中上方单元 Ctrl-Right 跳到右边一个字首
K 选中上方单元 Ctrl-Backspace 删除前面一个字
Down 选中下方单元 Ctrl-Delete 删除后面一个字
J 选中下方单元 Esc 进入命令模式
Shift-K 扩大选中上方单元 Ctrl-M 进入命令模式
Shift-J 扩大选中下方单元 Shift-Enter 运行本单元,选中下一单元
A 在上方插入新单元 Ctrl-Enter 运行本单元
B 在下方插入新单元 Alt-Enter 运行本单元,在下面插入一单元
X 剪切选中的单元 Ctrl-Shift– 分割单元
C 复制选中的单元 Ctrl-Shift-Subtract 分割单元
Shift-V 粘贴到上方单元 Ctrl-S 文件存盘
V 粘贴到下方单元 Shift 忽略
Z 恢复删除的最后一个单元 Up 光标上移或转入上一单元
D,D 删除选中的单元 Down 光标下移或转入下一单元
Shift-M 合并选中的单元
Ctrl-S 文件存盘
S 文件存盘
L 转换行号
O 转换输出
Shift-O 转换输出滚动
Esc 关闭页面
Q 关闭页面
H 显示快捷键帮助
I,I 中断Notebook内核
0,0 重启Notebook内核
Shift 忽略
Shift-Space 向上滚动
Space 向下滚动

整理自Jupyter Notebook的快捷键

bug2:matplotlib中文无法显示

在Windows中,通常默认编码格式为GB2312和GBK,和Unix和Linux不同,而jupyter的环境应该是UTF-8,并且有些字体是没有完全加载的,所以我们在Windows系统下用matplotlib画图会出现这样的情况:

jupyter notebook安装及使用总结_第3张图片
我们发现上面的中文格式出现了乱码,所以第一种方式和上面bug1类似,通过改配置文件再重新加载,但这种只适用于非win10用户,win10用户可以用第二种,就是每次画图前,导入两句代码。那么现在来介绍第一种。

进入\anaconda\Lib\site-packages\matplotlib\mpl-data文件夹中,我们会看到一个matplotlibrc的文件,用notepad++或者sublime text打开它,查找font.family,然后用下面两行代码替换掉:

font.family         : sans-serif
font.sans-serif     : Microsoft YaHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

上面两句代码相当于加入了代码未执行的字体与字号,在通常情况下,就可以显示中文图例啦。
jupyter notebook安装及使用总结_第4张图片

但这种方式在win10中是行不通的,我发现在win10中好像缺少了上述的很多字体格式,比如说Microsoft YaHei(微软雅黑),好像官方包里并没有这个的ttf格式,所以可能需要自己去补充一下文字库,但我是懒得找了,首先我linux和Windows还有kaggle都在用,暂时没有想法修复它,所以下面就是一种治标不治本,但屡试不爽的方法,加上这两行代码就行了:

plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置  
plt.rcParams['axes.unicode_minus'] = False

jupyter notebook安装及使用总结_第5张图片

jupyter引入插件

在前面我说过为什么要用谷歌浏览器?其实如果单从学术方面来考虑的话,什么浏览器都能搜寻到资料,关键就看有没有梯子罢了。可能谷歌有谷歌学术,相应的会查找得快些。QQ浏览器更多用于知网。但谷歌最好用的地方还在于插件,它里面的插件库包罗万象,很多的时候只有你想不到,没有它缺少的。而jupyter一样,插件也很多。我们需要运行如下命令:

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

jupyter notebook安装及使用总结_第6张图片

安装成功后,我们就可以进入插件列表,选择我们喜欢的插件类型了,下面是我加载的一些插件:
jupyter notebook安装及使用总结_第7张图片

ExecuteTime:显示单元格的运行时间和耗时
在pycharm这类的IDE中,每次运行程序,如果我们要知道具体运行时间或者当前程序的执行时间,可能需要调出time模块,设一个start和end值,虽然也行,但应该是没有比jupyter插件方便了,如下:

jupyter notebook安装及使用总结_第8张图片


Codefolding in Editor:折叠代码

启用CodeMirror功能以允许在Jupyter文件编辑器视图中进行代码折叠。相当于在jupyter中带上了如pycharm、sublime text的代码折叠功能,下面是官方示例,这个我暂时没开:
jupyter notebook安装及使用总结_第9张图片
jupyter notebook安装及使用总结_第10张图片

Table of Contents (2)

这个相当于和csdn一样,我每次写博文都会习惯性的添加一个TOC链接以显示目录,这个概念也是一样的,如下官方案例:

jupyter notebook安装及使用总结_第11张图片

以上就是一些推荐的插件,正所谓插件就是为了解决麻烦而生的,可能会有人说插件会影响速度,还不如自己写,这个是不能否认的,插件多启动项就多了自然会变慢,这个可以参照wordpress,后台插件千奇百怪,如果要作为网站开发者,仅仅依赖于插件,那么可以肯定的说你的网站是不成功的,最终前台会连着后台一起又卡又慢,谷歌也是一样,只不过速度在我们可接受范围内,但我觉得jupyter作为数据挖掘、机器学习从业者的经典编辑器,加载的这些插件却反而大大减少了我们所需要的时间,也许你说启动变慢了,但那也就1、2秒,总比你跑一个程序十天半个月,没有TOC链接第二天还要从头开始整理代码浪费的时间少。

bug3:pdf下载问题

好了,快捷键知道了,插件也加载完了,然后我们愉快的敲完了代码,想要保存为PDF格式,以便于发给别人检查或者验收,但却突然发现,会报这个错误:
jupyter notebook安装及使用总结_第12张图片
我是anaconda3.6版本的,不知道之前的有没有这个问题,那么我就需要去下载两个东西:

Pandoc: https://github.com/jgm/pandoc/releases
Miktex: https://miktex.org/download

这里下第一个如果没有梯子的话,可能会网速非常慢,能有个10k都算不错了,建议直接百度找资源或者csdn本站就有,第二个不需要梯子。

安装成功后,我们需要通过路径找到article文件,这里我的路径是F:\anaconda\pkgs\nbconvert-5.3.1-py36h8dc0fde_0\Lib\site-packages\nbconvert\templates\latex,建议在pkgs直接搜索article关键字就行了,然后修改为\documentclass{ctexart}

jupyter notebook安装及使用总结_第13张图片

然后到此为止就能下载出除了含有中文以外的pdf文件了,如果要下载有中文的PDF,那么当我们选择下载为PDF的时候,它会弹出如下弹窗,这里第一次需要看一下是否我们标记的是China http,至于上下两个,应该没啥太大区别。

jupyter notebook安装及使用总结_第14张图片

jupyter notebook安装及使用总结_第15张图片

然后我们就会安装一系列的如xeCJK.sty、ulem.sty、environ.sty、trimspaces.sty等等文件,大概会有十几个到几十个不等的文件,如果我们不想知道下载的是什么,可以将在下载前总是弹出的选项框取消勾选。

那么一切安装成功后,我们就可以看到成功打印出来的PDF文件了,那么到此,从安装到成功打印出一份简单的PDF文件就是这样啦。
jupyter notebook安装及使用总结_第16张图片

协同开发

jupyter notebook虽然装了插件与各种各样的东西,却还是弥补不了它作为一款浏览器编辑器的事实,所以python的编辑器才会有pycharm、spyder等同样著名的IDE,但我最近几天突然看到量子位的一则消息,说jupyter也能和pycharm等一起开发啦。只需要安装Jupytext:

pip install jupytext

jupyter notebook安装及使用总结_第17张图片

另外我是写这篇博文的时候装的,具体功能还没用过,但可以分享jupytext作者的博客链接以及到底怎么玩,看下图:

博客链接(可能需要):

Introducing Jupytext

虚拟环境切换

关于虚拟环境,不可否认还是Pycharm优秀,它自带有装虚拟环境的功能,而关于虚拟环境的安装,可以看我下面两篇博客介绍:

在Windows下搭建虚拟环境
linux下搭建虚拟环境

这里推荐最好还是在终端创建虚拟环境,稳定并且易于管理。当创建完虚拟环境后,pycharm在启动的时候直接切换,这里就不用我多说了,而jupyter notebook麻烦一些,步骤如下:

首先进入anaconda Prompt,然后输入:

conda activate Test2(虚拟环境名)

进入后可以conda list和pip list看一下当前进入的虚拟环境有什么包,然后找一个叫ipykernel的包,如果没有,那么需要安装:

pip install ipykernel

成功显示如下信息:
jupyter notebook安装及使用总结_第18张图片

然后就可以将虚拟环境加载进jupyter notebook了,命令如下:

python -m ipykernel install --name Test2

然后就可以在jupyter notebook的右上角选择进入啦:

jupyter notebook安装及使用总结_第19张图片

总结

关于jupyter,在我使用的过程中大致想总结的问题就那么多,可能还有一些其它方面的我没遇到过,我目前学习的层面也比较浅,模型算法方面推导是已经还可以了,但代码实战还需要花很大力气去完善,另外快年底了,准备开始写年终总结,还有就是个人网站的搭建和敲代码的时间,还需要时刻进行着。

你可能感兴趣的:(机器学习)