增强 Jupyter Notebook的功能
增强 Jupyter Notebook的功能
Jupyter Notebook 是所有开发者共享工作的神器,它为共享 Notebooks 提供了一种便捷方式:结合文本、代码和图更快捷地将信息传达给受众。目前,Jupyter Notebook 已经应用于数据分析和数据科学等领域。
然而,大部分开发者仅仅了解其皮毛。开发者使用 Jupyter Notebook 的基本功能来写 Python 代码、展示图。但是你们知道 Jupyter 中还有大量自定义功能吗?这些很酷的选项可以帮助你使用 Jupyter notebook 更高效地写代码、展示图。
本文将介绍强化 Jupyter Notebook 功能的 4 种方法。
1. 执行 Shell 命令
在技术或编程文本中,shell 表示使用文本与计算机进行交互的方式。最流行的 Unix shell 是 Bash(Bourne Again SHell),Bash 是 Linux 机器上终端默认的 shell。
在使用 Python 工作时,你会经常在写 Python 代码和使用 shell 命令之间来回切换。例如,你想使用 Python 读取磁盘中的某份文件,而这需要你确认文件名。通常情况下,你需要在终端输入 ls,获得当前目录的所有文件和文件夹列表。但这样来回切换非常繁琐低效。
很炫酷的是,Jupyter 能够执行 Shell 命令,你甚至无需离开浏览器。只需要在 shell 命令前加一个感叹号!,Jupyter 会将其转换为 Bash。在任一命令前加感叹号!,它们就可以在 Python Jupyter Notebook 中运行。
# Listing folder contents
>>> !ls
mynotebook.ipynb stuff.txt# Getting the current directory
>>> !pwd
/home/george/github/project_1# Printing from Bash
>>> !echo "Pizza is delicious!"
Pizza is delicious!
我们还可以将 shell 命令的输出分配给 Python 变量,如下所示:
# Getting the current directory.
# The variable "X" now contains ["/home/george/github/project_1"]
X = !pwd
2. 更换主题

很多文本编辑器和编程 IDE 都有自定义主题。开发者最喜欢的主题之一是暗黑主题(如 monaki),因为对于整天盯着屏幕的开发者而言,暗黑主题看起来比较舒适。幸运的是,Jupyter 有一个插件,允许用户自行选择主题。
要想安装该插件,你只需在终端中运行以下 pip 命令:
pip install jupyterthemes
运行以下命令,可得到可用的主题列表:
jt -l
截至本文写作时,可选择的主题包括:
chesterish
grade3
gruvboxd
gruvboxl
monokai
oceans16
onedork
solarizedd
solarizedl
查看这些主题,如下图所示,我们拥有大量不同的颜色选择。
solarizedd(左),gruvboxl(中),grade3(右)。
3. Notebook 扩展插件
Jupyter Notebook 扩展插件(nbextensions)是一些 JavaScript 模块,你可以使用它们强化 Notebook 的功能以及使用。扩展插件本质上修改了 Jupyter UI,以实现更稳健的功能。
我们首先通过 pip 安装 nbextensions:
pip install jupyter_contrib_nbextensions
安装完成后,启动 Jupyter。你将看到一个新选项——NBextensions。选择它之后,你会看到大量 Jupyter Notebook 扩展插件选项。

通过快速搜索,你可以查看这些扩展插件的功能。下面我将介绍几个最重要的插件。
Table of Contents
正如其名称所描述的那样,Table of Contents 基于 notebook 中 # 创建的标题自动生成目录。例如,我在 notebook 中创建了以下标题:
# This is a super big title
## This is a big title
### This is a medium title
#### This is a small title
则左侧会生成目录。双击标题,可链接至对应章节内容。当 notebook 规模很大,选项很多时,这个功能非常方便!

Hinterland
代码补全是大部分 IDE 都具备的常见功能,比如 PyCharm。开发者喜欢这个功能,因为这使得他们的工作更加简单,开发者无需记住每一个命令,IDE 会准备好一切。
Hinterland 可在 Jupyter Notebook 内完成代码补全。在键入过程中,你会看到一些代码补全建议。尤其是当你搜索外部库的命令时(示例如下所示)。这简直太方便了!

拆分单元格(Split Cells)
拆分单元格允许开发者并排查看 2 个单元格。当你有两个相关单元格时(比如描述及其对应的图示),这个功能非常方便。

4. 使用 Qgrid 探索 Dataframes
最后一站是 Qgrid,该工具允许开发者在不使用复杂 Pandas 代码的情况下,探索和编辑数据帧。Qgrid 可在 Jupyter notebook 中以交互的方式渲染 pandas 数据帧,这样你就可以执行一些直观的控制,如滚动、排序和筛选,以及双击单元格编辑数据帧。
我们首先安装 Qgrid:
pip install qgrid
jupyter nbextension enable --py --sys-prefix widgetsnbextension
要想使用 Qgrid 渲染数据帧,开发者只需导入 Qgrid,然后将数据帧输入到 show_grid 函数:
import qgrid
qgrid_widget = qgrid.show_grid(df, show_toolbar=True)
qgrid_widget
这样,你可以对数据帧执行大量交互式操作:
- 添加和删除行;
- 筛选行;
- 编辑单元格。
将更多参数输入 show_grid 函数可以执行其他交互式操作。关于 Qgrid 的全部功能,参见:https://github.com/quantopian/qgrid。

以上就是强化 Jupyter Notebook 功能的 4 种方法。
原文链接:https://towardsdatascience.com/4-awesome-tips-for-enhancing-jupyter-notebooks-4d8905f926c5
持续更新
增强 Jupyter Notebook的功能的更多相关文章
- Jupyter NoteBook功能介绍
一.Jupyter Notebook 介绍 文学编程 在介绍 Jupyter Notebook 之前,让我们先来看一个概念:文学编程 ( Literate programming ),这是由 Dona ...
- 如何为 Jupyter Notebook 安装代码提示功能
按照上一篇博客安装完 Python 和 Jupyter Notebook 后,我们已经可以使用 Notebook 愉快的编写 Python 代码了,但是发现它不像其他编辑器那样会弹出代码提示,这稍微有 ...
- jupyter notebook自动补全功能实现
Jupyter notebook使用默认的自动补全是关掉的.要打开自动补全,需修改默认配置. 命令行中输入:ipython profile create 以上命令会在~/.ipython/profil ...
- 【机器学习实践】Jupyter Notebook安装 侧边导航栏功能 操作及其他常用扩展功能介绍
安装过程: 1. 首先我们引入jupyter_contrib_nbextension这个第三方库. 2. 在Anaconda Promot中输入命令: pip install jupyter_con ...
- 在Jupyter Notebook添加代码自动补全功能
在使用Jupyter notebook时发现没有代码补全功能,于是在网上查找了一些资料,最后总结了以下内容. 1 安装显示目录功能: pip install jupyter_contrib_nbext ...
- Jupyter Notebook环境安装
Jupyter Notebook环境安装 一.什么是jupyter Notebook 1.简介 Jupyter Notebook 是基于网页的用于交互计算机的应用程序器可被应用程序. 能让用户将说明文 ...
- 使用docker搭建jupyter notebook / jupyterlab
说明 由于官方镜像实在是不怎么好用,所以我自己做了一个优化过的jupyter notebook的镜像 notebook_hub,使用我这个镜像搭建容器非常简单,下面就基于这个notebook_hub来 ...
- Python,Jupyter Notebook,IPython快速安装教程
0.安装环境 Windows10,Python3.5.1,IPython,jupyter notebook,and other functionality 官方安装文档Linux版3.x 官方安装文档 ...
- Jupyter Notebook 27绝技——27 Jupyter Notebook tips, tricks and shortcuts
转载自:https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/ Jupyter notebook, formerly ...
随机推荐
- Linux基础教程 linux awk内置变量使用介绍
awk是个优秀文本处理工具,可以说是一门程序设计语言.下面是兄弟连Linux培训 给大家介绍的awk内置变量. 一.内置变量表 属性 说明 $0 当前记录(作为单个变量) $1~$n 当前记录的第n个 ...
- 浙大PAT CCCC L3-001 凑零钱 ( 0/1背包 && 路径记录 )
题目链接 分析 : 就是一个 0/1 背包,但是需要记录具体状态的转移情况 这个可以想象成一个状态转移图,然后实际就是记录路径 将状态看成点然后转移看成边,最后输出字典序最小的路径 这里有一个很巧妙的 ...
- Qt第三方库----QCustomPlot
一.软件下载 下载地址:http://www.qcustomplot.com/index.php/download 这里推荐下载第一个链接的内容: 注:这里的第三方库要放在非中文目录下. 二.配置 ( ...
- 如何查看运行的docker container 的 执行 docker run的命令
前言 就是我备份了一下 mysql_container, 然后我想启用 新的备份的mysql_container 但是之前的docker run image xxxxxx这些都已经忘记了 我想找一下之 ...
- 【CF1243D&CF920E】0-1 MST(bfs,set)
题意:给定一张n个点的完全图,其中有m条边权为1其余为0,求最小生成树的权值和 n,m<=1e5 思路:答案即为边权为0的边连接的联通块个数-1 用set存图和一个未被选取的点的集合,bfs过程 ...
- (45)FreeRTOS学习之二
一:架构概述 FreeRTOS是一个相对较小的应用程序.最小化的FreeRTOS内核仅包括3个(.c)文件和少数头文件,总共不到9000行代码,还包括了注释和空行.一个典型的编译后(二进制)代码映像小 ...
- nowcoder---常州大学新生寒假训练会试----F 大佬的生日礼包(二分)
链接:https://www.nowcoder.net/acm/contest/78/F 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit ...
- 9.并发编程--ThreadLocal
并发编程--ThreadLocal 1. ThreadLocal : * 线程局部变量,是一种多个线程间并发访问变量的解决方案. * 与其使用synchronized等加锁的方式,ThreadLoca ...
- pymysql(一)检索、增加、更新、删除数据
(一) SELECT 检索数据 代码如下: import pymysql '''pymysql使用指南host = '127.0.0.1'回送地址,指本地机port = 3306MySQL的默认端口 ...
- docker 容器不能联网
Unknown Endpoint: Inaccessible host: `dynamodb.us-east-1.amazonaws.com' 别慌!Docker容器内不能联网的6种解决方案 注:下面 ...