基础使用
今天我们介绍jupyter notebook的保姆级基本使用方法
安装和个性化配置¶
我们首先介绍如何在计算机上安装jupyter,这里以Windows为例,MacOS和Linux系统也差不多。
Anaconda发行版¶
第一种安装方法非常简单,如果你从未接触过python,那么直接选择选择Anaconda发行版可以省去很多麻烦事。
anaconda在英语中意为水蟒而python在英语中意为蟒蛇
Step1¶
先从官网上下载Anaconda安装包。网站的服务器在国外,没有魔法可能下载很慢,如有需要后台回复jupyter我会把最新版的放在网盘供大家下载。
网址:
https://www.anaconda.com/products/individual
下载完之后直接双击运行。
Step2¶
然后进入到安装页面
直接Next
选择I Agree
选择Just me或者All Users都可以,点击Next
这里要注意安装路径的选择,因为Anaconda非常臃肿,你使用一段时间后可能会达到10GB的占用,所以需要提前预算好,我这里是虚拟机演示,没有这方面的顾虑故直接Next
这里两个选项需要特别注意。
第一个是把anaconda3添加到PATH,如果你点上了会有红色警示,说如果点上了会使得anaconda在任意目录下被找到。一般来说为了方便,我会点上这个选项,这样就可以在任何路径下使用anaconda的命令行工具。
第二个则是把anaconda的python 3.9解释器注册为默认python解释器。一般新手的python环境比较干净,这个选项不用去管。
选好之后Install
稍作等待,出现以上画面,然后一连串的Next后,来到安装结束界面。
点击Finsh即可结束安装。
这时开始菜单中会自动添加Anaconda文件夹:
总的来说,安装过程就是不断地Next,需要注意的就是安装路径和是否添加到PATH这两个地方。
启动jupyter¶
有三种方式启动jupyter
1 使用命令行启动¶
点击上图第三个快捷方式Anaconda Prompt,会弹出一个命令行窗口:
注意这里的(base)代表当前激活的环境,如果使用其他prompt工具比如CMD、Powershell不会自动激活base环境,则需要先激活环境或者直接把anaconda添加到PATH才可以执行相关命令
在命令行输入以下命令可以启动jupyter:
jupyter notebook
一般来说会自动弹出浏览器:
至此jupyter notebook就安装成功,并且启动成功了。
这个命令还可以添加一些参数,例如在指定端口(默认8888)启动:
jupyter notebook --port=8888
jupyter notebook --no-browser
jupyter notebook --help
2 使用快捷方式启动¶
点击上图第四个快捷方式在默认配置下启动jupyter notebook。
3 使用Anaconda Navigator启动¶
不推荐此方法,因为Anaconda Navigator非常的卡,响应极慢!!
点击上图第一个快捷方式,等待加载,然后在图形化界面可以启动jupyter notebook
我需要Anaconda吗¶
不得不说,Anaconda实在是非常臃肿。作为一个数据科学软件包,他纳入了诸如jupyter, spyder, TensorFlow, Pytorch, Numba等等等诸多软件。而很多时候我们用不到这些软件,故下一节我们介绍精简安装。
精简安装(推荐)¶
Step1¶
安装python,安装包同样可以从官网https://www.python.org/downloads/ 获取:
我们这里安装3.9.10的版本。点开安装包之后注意勾选上Add TO PATH否则只有在安装路径才能使用命令行工具,然后Install Now即可一键安装。
Step2¶
安装jupyter,我们首先打开任意的命令行窗口,Windows可以同时按下键盘上的Win
和R
调出快捷启动,然后输入CMD即可
然后在命令行输入
pip install jupyter notebook
等待片刻,pip会自动进行安装:
见到如上字样即代表安装成功,可以在当前命令行直接输入
jupyter notebook
总的来说,使用pip安装jupyter nb实际上非常简单,也更加精简。我更推荐这个安装方法,毕竟你迟早得学会如何安装、管理python的各种库和包。
个性化配置¶
正式进入jupyter的使用界面,首先看到的是一系列的文件夹,对应着我们默认的工作目录C:\Users\Username
,而很多人并不习惯把个人文件放在这个目录下(虽然微软的本意如此)
并且,我们每次运行jupyter notebook都会自动弹出一个浏览器窗口,有时这很烦人。
于是我们需要自定义一些配置,所幸jupyter notebook给足了自由发挥的空间。
生成配置文件¶
还是在命令行,输入以下命令:
jupyter notebook --generate-config
.py
配置文件,并且提示它的位置 我们找到这个文件,用python默认的IDE或者其他任何文本编辑器(例如记事本, VScode, Sublime Text, Notepad等) 打开即可开始自定义。
可自定义的选项非常多,我们简单介绍几个常用配置。
自定义工作目录¶
第393行
把#
删去取消注释,然后把后面的字符串改为你想要的目录。
特别注意,windows下默认使用的是C:\Users
这种以反斜杠作为目录分隔符的路径,但是在python字符串语法中,反斜杠代表转义符,所以需要在字符串前面加上r
也就是r'C:\Users\'
python才可以正确识别
自定义是否打开浏览器¶
第401行
取消注释,把True
改为False
即可。
其他诸多配置,可以根据需求配置。修改完成后,保存文件重启jupyter即可应用配置。
插件安装¶
在正式写notebook之前,我们先把插件安装了,这也是命令行工作,省的后面还要来回切换。
先执行
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
在这里你可以选用一些插件。这些插件具体有什么作用下面会有相应的解释,我们后续也会再出一篇推文单独介绍。我选择启用的插件如下:
notebook的书写¶
终于可以写一点代码了
新建笔记本¶
在任意目录点击New
可以选择新建文件
点击Python3(ipykernel)
可以新建笔记本,创建完成后自动打开
这就是我们笔记本的编辑页面,下图有笔记本的基本介绍
快捷键¶
如此多的按钮,其实很少用到,因为jupyter notebook有一套非常好用的快捷键。首先我们定义单元格的mode. 一个单元格有两种mode:command mode
和edit mode
,对应左边会显示不同的颜色。
蓝色代表command mode
绿色代表edit mode
在快捷键在这两种场景下也是区分的,我常用的如下:
command mode¶
数字1-6
,把单元格转换为1-6级标题(实际上是markdown单元格Y
,把单元格转换为代码单元格M
,把单元格转换为markdown单元格R
,把单元格转换为raw单元格A
,在当前单元格上方添加一个单元格B
,在当前单元格下方添加一个单元格Double D
,连续按下两次D
,删除选中的单元格X
,剪切选中的单元格(通常我用剪切代替删除C
,复制选中的单元格V
,粘贴已经剪切或复制的单元格K
,选中上一个单元格J
,选中下一个单元格L
,显示当前单元格的行号Keep Shift
,按住Shift
点击两个不同的单元格,可以一次性选中多个单元格,配合X
,C
,V
使用Enter
,进入edit mode
edit mode¶
Ctrl+Enter
,运行当前单元格Shift+Enter
,运行当前单元格并且创建下一个单元格(默认进入edit mode
还有好多其他的快捷键,这里就不放了,可以通过下面的方式查看:
点击Help
菜单中的Keyboard shortcut
查看快捷键列表
在这里还可以自定义快捷键。
代码单元格¶
运行¶
终于可以写点东西了,在jupyter notebook中单元格默认的格式就是代码单元格。你可以在这里写代码,然后运行:
你也可以写一些复杂的代码,这时最好开启
行号
: 单元格左侧In:[23]
代表这是第十二个运行的代码,而Out:[12]
代表这是第十二次运行的结果。
输出¶
每次运行jupyter都会自动输出
最后一行的运行结果。注意这里的输出并不局限于print
,jupyter精心优化了图片、表格等等内容的输出:
name space¶
注意,这里使用了前面单元格定义的fib()
函数,也就是说整个笔记本是在同一个命名空间的,使用同样的内存。
这需要特别谨慎,因为当笔记本很长时,不要忘记你之前命名过的变量,不然会被覆盖。
magic command¶
比较特别的是,我们不仅可以在代码单元格运行python代码,还可以运行一些其他命令,jupyter称之为magic command
,需要用%
或者%%
(两者有所不同)声明,例如计算程序的平均耗时
更多其他的magic command
我们后续的推文再介绍。
command¶
并且我们还可以运行命令行的命令
,例如ping
,需要用!
声明
markdown单元格¶
markdown单元格就简单得多,如果你还不会md的语法也不要害怕,它真的非常简单,学会他只需要2分钟,但是学好了之后能极大的提升效率。~~我现在这段话也是我用markdown书写的~~:
markdown于我最大的意义就是可以较为简单地写一些LaTeX数学公式,以及在notebook中嵌入一些媒体内容:
上面的内容完全对应于下面的文本
<figure markdown>
![](./assets/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png)
</figure>
$$\int_{-\infty}^{\infty}e^{-x^2}dx=\sqrt{\pi}$$
[python](https://www.python.org/)
其他单元格¶
jupyter自带的就一个Raw NBconvert
单元格
功能非常简单,就是消除一切格式、高亮,用plain text
的样式呈现。
如果安装了一些特殊的插件,可能会有一些其他特殊的单元格,例如Rise
这个插件
notebook的导出¶
~~jupyter notebook那么好用,我觉得每个人电脑上都应该装一个。~~很多时候我们会遇到这样一个问题,你呕心沥血写好了一份notebook发过去,但是对方不会用,也懒得折腾。如果是好哥们还好,可以教育一下,如果是Leader或者老师就不太妙,只能自己想办法导出为漂亮的格式。
常见的有三种方案
网页打印¶
这个简单粗暴,因为jupyter notebook是实时渲染在网页上的,我们可以直接使用浏览器的打印功能生成pdf
download as (nbconvert)¶
jupyter内置了一些可以导出的格式
但是只有少数的格式(例如markdown)可以在不配置任何外部软件的情况下导出成功,大多数文件格式都会导出失败
具体如何配置我们以后再说。
pandoc¶
我们使用pandoc就可以实现格式转换。
Pandoc是使用Haskell语言编写的一款跨平台、自由开源及命令行界面的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。 摘自维基百科。
具体怎么用,这里实在写不下了,下次再说。
总结¶
洋洋洒洒写了快4千字了,早就超过了一般人会看完的长度。倒也不期待有人能看到这里,毕竟写这个也是用爱发电,周末无聊罢了。
jupyter notebook与我而言是陪伴我接触编程到爱上编程的朋友,我的电脑里至今还保存着我第一次学python时的notebook(python是我的first language)我遇到过各种问题,也解决了各种问题。在这样的过程中不断成长着,现在我已经能熟练地面向浏览器编程了,jupyter确实帮了我很多。
时间不早了,吃饭去了。
此致,祝好!
创建日期: 2022-07-24 22:16:33