前言
随着人工智能热浪(机器学习、深度学习、卷积神经网络、强化学习、AGC以及大语言模型LLM, 真的是一浪又一浪)的兴起,小伙伴们Python学习的热情达到了空前的高度。当我20年前接触Python的时候,做梦也没有想到Python会发展得怎么好。那时候大家对于Python的溢美之词无非是说它很优雅,很可爱,是一门胶水语言。把思绪拉回到今天,Python不仅仅是胶水语言,它更是捞金语言。
Python这门语言,简单易学,上手入门并不难。而且现在的包管理方面做得很优秀,生态建设也做得很棒。基本上不管是通用的软件开发,还是数据处理,可视化以及人工智能方面的算法,你都可以在Python生态里找到合适的轮子。pip早就取代了当年的setup tool和wheel等等,成为事实上的标准。而在众多才华横溢的工具之间,Jupyter是一个不容忽略的强者。
Jupyter介绍
Jupyter是一个强大好用的工具集,它对于初学者学习Python语言、或者探索Python语言新功能、或者实验不熟悉的包都非常适合。
Jupyter工具集主要有两个产品,一个是Jupyter Notebook, 另一个是Jupyter Lab。这两个都是交互式的计算环境,支持Python, R, Julia等等语言运行时内核。Jupyter Notebook是早期的经典产品,而Jupyter Lab是新的产品,提供了比Notebook更加强大的功能,更新颖流畅的界面。按照官方的说法,是希望Jupyter Lab来取代经典的Notebook。
安装
Jupyter Notebook和Jupyter Lab的安装都很容易,按照官方的步骤说明安装就可以。英文好的同学可以直接奔赴这里 Project Jupyter | Installing Jupyter
我在多个环境中,包括Windows, Mac和Linux上都习惯用pip来安装,没有遇到过问题。(使用Mac的同学可以使用Homebrew,这里不多说了。)安装好Python之后,直接运行下面命令就可以安装Jupyter Notebook了。
pip install notebook
而对于Jupyter Lab也是类似的,
pip install jupyterlab
运行
运行这两个产品也很容易,在命令行中运行下面命令即可。
jupyter notebook
或者
jupyter lab
主要功能
用户与界面
先来看Notebook的界面和功能。
界面比较像传统的桌面软件,有标题栏、菜单栏、工具栏和工作区等等。工作区中最主要的部分就是被称为Cell (单元格)的部分,常见的单元格类型为代码、Markdown和原始文本。
执行代码单元
在代码单元格中能够输入代码,在工具栏上点击“运行”按钮就会执行当前选择的单元格,代码运行的结果会在下方马上显示出来。注意Jupyter跟其他的IDE相比,有一个优势就是能够重复执行任何单元格。例如上图中的第一个单元格
print("hello, jupyter notebook")
第一次执行之后,左侧中括号中会出现一个数字序号表示这个代码块在整个执行序列中是第几个。然后如果后续再执行同一个单元格,对应的序号会变。例如我修改了单元格并重新执行的结果如图所示。
因为这个特性,在Jupyter Notebook或者Lab中做一些探索,特别方便。例如,我们可以导入PyTorch的包玩玩。(前提是你安装了PyTorch)
切换核心
Jupyter是通过核心(Kernel)的概念来支持多种编程语言的。Jupyter除了支持Python(基于IPython实现)之外,还支持其他的语言,例如科学计算语言R和Julia, 也支持Scala。本人对于R语言,Julia语言不熟悉,对于Scala不感冒,所以这里不班门弄斧了。同学们可以根据自己的情况进行选择使用。
通过Kernel主菜单,可以选择重启、停止或切换核心等等。通常情况下并不需要频繁使用这些功能,但是如果万一某个执行的代码块卡住了可以使用Restart功能,相对来说比直接杀死Jupyter Server来得柔和一些。
文件管理器
通过文件管理器可以执行常见的文件管理功能,如下面图片展示。
终端
跟其他常见的IDE类似,Jupyter Notebook和Lab中都集成了终端,可以在终端中做一些side work。
差别
上面的主要功能在Jupyter Notebook和Jupyter Lab中都有,那么两者有什么差别呢?他们的主要差别有一下几点:
1. Notebook是一个单文档的应用,也就是以为这在一个notebook中你只能操作一个文件。而Lab是一个集成开发环境,可以通过标签页打开多个文件。
2. 单文件编辑 vs. 集成开发环境(IDE)
Jupyter Lab试图打造一个集成开发环境(IDE), 所以是以项目为中心的,多种工具都被集成进来了,例如单点调试,日志输出和查看等等。相信在未来,它会有更多优质功能出现。
总结
两个工具都很棒,如果是初学者有时间,建议直接用Jupyter Lab。反正学习难度都不大,那就用新的工具吧。Jupyter Notebook胜在简单明了,有时候写一个简单的脚本验证,用它就够了。欢迎同学们加关注,留言或私信交流,一起学习,做更赞的自己~~