大家好,我是老班~很多读者问过我,文章中的Python/ target=_blank class=infotextkey>Python代码都是用的什么编辑器写的?
今天就公开啦:Jupyter Notebook,没有Pycharm,没有Vscode,没有Sublime text。只有一款工具:Jupyter Notebook。从2019年至今,使用了两年半多的时间,今天就好好聊聊它~
工欲善其事,必先利其器
1、官网学习地址:
https://jupyter.org/
2、使用说明:
https://jupyter-notebook.readthedocs.io/en/stable/notebook.html
也许还有朋友不知道Jupyter Notebook,到底都是谁在用它?
这是从官网上看到的使用者:谷歌、微软、NASA、IBM等国际知名公司都在其中。所以,你确定还不用吗?
Jupyter Notebook是基于网页的用于交互计算的一款应用程序。它可被应用于整个计算过程:从开发文档编写、运行代码和到展示结果。
简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。
如在编程过程中需要编写说明文档,可在同一个页面中使用Markdown语法直接编写,便于作及时的说明和解释。
Jupyter notebook主要是由两个部分组成:网页和文档
上面已经介绍了Jupyter Notebook中基于网页的应用程序,在Jupyter 的整个网页应用中结合了多个元素:说明文档、计算公式、文档编写、可视化动态图、甚至是可以嵌入PPT等。总之,这款网页应用的程序能够实现各种功能
Jupyter Notebook中的所有程序都能够以各种形式的输入和输出:公式、文档、富媒体形式等。
Jupyter的文档是保存为后缀名为.ipynb的JSON格式文件,不仅便于版本控制,也方便与他人共享。
此外,文档还可以导出为:HTML、LaTeX、PDF、Markdown等格式的文件,十分方便和互联网化!
建议直接通过anaconda来安装Jupyter notebook,这样后续省去很多麻烦。
anacoda是全球最大的数据科学平台,一个基于Python的环境管理工具,相比其他库管理工具,它更适合数据工作者。
安装了anaconda之后,不仅是Jupyter notebook,很多python的第三方库,比如:pandas、numpy等都会自动安装好,实在是方便。
anaconda安装可自行搜索教程,傻瓜式安装
安装包下载地址:
https://www.anaconda.com/products/individual#Downloads
(1)在安装好了Jupyter notebook之后,我们可以在任意位置启动它,直接输入jupyter notebook即可启动。
执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook:
(base) peter:pandas系列教程 peter$ pwd -- 查看当前的目录
/Users/peter/Desktop/WeChat/文章/pandas系列教程
(base) peter:pandas系列教程 peter$ jupyter notebook -- 输入 jupyter notebook 表示启动
!!!注意:启动Jupyter之后我们的全部操作都不要关闭终端,否则的话notebook就会断开和本地服务器的连接。
(2)启动之后就来到了初始页面,包含你当前目录的全部文件(文件夹和文档):
我们看到notebook默认的地址是localhost:8888,也就是默认本机的8888端口。当我们开启了多个notebook,会自动变成8889,8890等端口。
当然,我们也可以自定义端口:
jupyter notebook --port 9988 # 使用9988端口
(3)启动之后我们可以新建一个ipynb的文件:
在启动Jupyter Notebook,并且创建了新的文件之后,我们便可以开始在里面进行编码和文档写作。下面讲讲如何使用Jupyter Notebook。
首先我们需要明白一点:在Jupyter Notebook中有两种模式
主页面分为4个部分:
如果你是个新手,可以在notebook中直接查看帮助文档:
!jupyter notebook -h # 感叹号!不能少
默认的名字是“未命名”,给文件重命名:图解Pandas的Apply函数
【文件】菜单中主要是对各种文件的输入和输出操作,特别是将ipynb文件下载成各种形式进行输出,十分方便:
当我们在代码的单元格中输入了代码,如何运行?
1、单击【运行】按钮
2、快捷键
将光标放在我们需要运行的代码框中,然后 Shift+Enter 即可运行~
3、运行全部代码
如果我们想直接从头运行整个notebook中的全部代码,如下操作:【服务】到【重启&运行所有】
在一个对象的前后使用问号?可以显示出关于该对象的概要信息,这个对象可以是自建的,也可以是Python中自带的:
print函数和自定义函数的自省概要信息:
使用双问号?还有个用途是显示函数的源代码:
%run命令可以用来运行任意的python文件:
%run Python文件的绝对路径
假设我们在当前目录下有个python文件:
我们在notebook中运行py文件:查看3个变量和返回值的情况
Jupyter notebook本身功能其实不是很多,所以通常会给它安装一个扩展,安装之后就可以起飞了。
安装和启动命令如下:
# 安装Jupyter的配置器
pip install jupyter_nbextensions_configurator
# 启动配置器
jupyter nbextensions_configurator enable --user
当一个单元格中的代码很多行,我们想显示行数:
当需要在notebook中做笔记的时候,都是使用的Markdown。在Jupyter notebook中是可以直接Markdown语法来编写内容的,两种方式可以实现。
方法1:下拉选项中选择【标记】
方法2:快捷键的使用:【左侧蓝+M键】,常用
在使用Markdown的时候是有不同层级的目录,可以显示在notebook中。首先在扩展中需要开启这个功能:
点击启用目录生成:目录默认是在左边,也是按照层级来实现的
我们把光标放在目录上,呈现带+的符号,可以拖到右边:
除了在左侧生成目录,还可以在整个ipynb文件的最上面生成目录:
不管是左侧还是最上面的目录,当我们点击其中某个标题的时候,都会自动跳转到相应的位置,查看、定位文档或者代码超级方便。
安装了扩展之后,我们还可以对标题进行高亮显示:
既然Jupyter notebook能够使用Markdown,那么我们可以是Jupyter Notebook中编辑LaTex公式,举一个例子:在Markdown格式下的cell中输入如下内容:
$$ P(A mid B) = frac{P(B mid A) , P(A)}{P(B)} $$
便会生成相应的LaTeX公式:
一般在notebook中只会输出一个结果,通过设置能够同时输出多个。
默认情况下只会输出最近一个变量的值**,例子中是b**。
通过设置InteractiveShell.astnodeinteractivity参数为all,就可以让所有的变量或者声明都能显示出来,添加两行代码便可实现输出多个变量的效果:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all'
这是检查拼写错误的一个扩展,能够快速的发现我们拼写中的错误。需要主要的是这个插件是在Markdown格式下作用的:
本意表达的是:This is wrong question
当我们只想查看输出out部分的内容,可以将输入的代码进行隐藏:
下面是隐藏之前的效果:
1、命令模式快捷键(按 Esc 键开启):
快捷键作用Enter转入编辑模式Shift-Enter运行本单元,选中下个单元Ctrl-Enter运行本单元Alt-Enter运行本单元,在其下插入新单元Y单元转入代码状态M单元转入 markdown 状态R单元转入 raw 状态1、2、6设定 1 、2、6级标题Up选中上方单元K选中上方单元Down选中下方单元J选中下方单元Shift-K连续选择上方单元Shift-J连续选择下方单元A在上方插入新单元B在下方插入新单元X剪切选中的单元C复制选中的单元Shift-V粘贴到上方单元V粘贴到下方单元Z恢复删除的最后一个单元D,D删除选中的单元Shift-M合并选中的单元Ctrl-S保存当前 NoteBookS保存当前 NoteBookL开关行号O转换输出Shift-O转换输出滚动Esc关闭页面Q关闭页面H显示快捷键帮助I,I中断 NoteBook 内核0,0重启 NoteBook 内核Shift忽略Shift-Space向上滚动Space向下滚动
2、编辑模式快捷键( 按 Enter 键启动)
快捷键作用Tab代码补全或缩进Shift-Tab提示Ctrl-]缩进Ctrl-[解除缩进Ctrl-A全选Ctrl-Z撤销Ctrl-Shift-Z重做Ctrl-Y重做Ctrl-Home跳到单元开头Ctrl-Up跳到单元开头Ctrl-End跳到单元末尾Ctrl-Down跳到单元末尾Ctrl-Left跳到左边一个字首Ctrl-Right跳到右边一个字首Ctrl-Backspace删除前面一个字Ctrl-Delete删除后面一个字Esc切换到命令模式Ctrl-M切换到命令模式Shift-Enter运行本单元,选中下一单元Ctrl-Enter运行本单元Alt-Enter运行本单元,在下面插入一单元Ctrl-Shift–分割单元Ctrl-Shift-Subtract分割单元Ctrl-S保存当前 NoteBookShift忽略Up光标上移或转入上一单元Down光标下移或转入下一单元Ctrl-/注释整行/撤销注释
IPython的特殊命令被称为魔术命令,这些命令被设计用于简化常见任务。
官网地址:
https://ipython.readthedocs.io/en/stable/interactive/magics.html
魔术命令的前缀符号是百分号%,例如%timeit用来检查一段Python代码执行的时间。魔术命令可以直接使用,也可以赋值给变量再使用:
下面记录的是IPython的几个常用的魔法命令:
魔术命令作用%pwd查看当前的工作目录%cd更改当前的工作目录%ls查看目录文件列表%writefile写入文件%run运行脚本;%run可以从.py文件中执行python代码,也可以指定ipynb文件%whos查看当前变量%reset清楚当前变量%timeit测试单行代码运行时间%hist打印命令输入历史%paste从剪贴板中执行已经预先格式化的Python代码%cpaste打开一个提示符,手动粘贴执行的python代码%debug从最后发生报错的底部进入交互式调试器
在上面的图形中都是使用的默认主题:白色,实际上主题是可以更换的:
在jupyter notebook中安装并使用不同的主题
# 安装
pip install jupyterthemes
pip install --upgrade jupyterthemes
# 查看所有颜色主题 --list
jt -l
# 选择主题 --theme
jt -t 主题名称
# 恢复默认主题 --recover
jt -r
1、查看主题
$jt -t monokai # 选择某个主题
$jt -t oceans16
# 然后重新启动jupyter notebook
$jupyter notebook # 启动命令
如果想改回原来的主题输入 jt -r 即可
原文链接:
https://mp.weixin.qq.com/s/Qak18eniqpD7W965QcvX7A