前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >4 个有效提升 Jupyter Notebooks 效果的非凡技巧

4 个有效提升 Jupyter Notebooks 效果的非凡技巧

作者头像
AI研习社
发布2020-02-21 09:51:51
1.5K0
发布2020-02-21 09:51:51
举报
文章被收录于专栏:AI研习社AI研习社
原标题 | 4 Awesome Tips for Enhancing Jupyter Notebooks

作者 | George Seif

链接 | https://towardsdatascience.com/4-awesome-tips-for-enhancing-jupyter-notebooks-4d8905f926c5

编译 | CONFIDANT、邺调

对于所有希望分享自己工作成果的开发人员来说,Jupyter Notebooks是一个非常棒的工具。它们提供了一种简单的方式来共享笔记本——文本、代码和图形的组合,旨在增强我们向观众传达信息的方式。它们广泛应用于数据分析和数据科学等领域。

然而,我们中的大多数人仅仅只是抓住了Jupyter Notebooks的皮毛。我们使用编写Python代码和显示图形的基本特性。但是你知道Jupyter有很多可以增强它的功能的可定制的特性吗?很酷的选择,可以让你的笔记本写的更有效率和演示更有效。

这里有4个非凡的技巧来提升Jupyter Notebooks的效果!

1)执行Shell命令

技术/编程环境中的shell是一种与计算机进行文本交互(使用文本)的方式。最流行的Unix shell是Bash(Bourne同样是shell)。Bash是在任何Linux机器上使用终端时都会找到的默认shell。

在使用Python时,在编写Python代码和使用shell之间来回切换是很常见的。例如,您可能希望使用Python从磁盘读取某个文件,因此需要检查确切的名称。你通常只需进入你的终端,输入ls就可以得到当前目录下所有文件和文件夹的列表。来回走动会很乏味而且效率很低

真正酷的是Jupyter能够执行shell命令,而无需离开浏览器。你只要多加一个感叹号就行了!在shell命令和Jupyter将其解释为Bash之前。在命令行工作的任何命令都可以在Python Juoyter笔记本中使用,只要在命令前加上“ ! ”就可以了。

代码语言:javascript
复制
# 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变量,如下所示。

代码语言:javascript
复制
# Getting the current directory. 
# The variable "X" now contains ["/home/george/github/project_1"]
X = !pwd

2) 更换主题

许多文本编辑器和编程IDE都有可定制的主题。阿蒙最喜欢的一个发展是黑暗的主题,如莫纳基,因为它更舒适的眼睛时,你看一整天的屏幕。幸运的是,Jupyter有一个允许选择主题的插件。

要安装插件,只需在终端中运行pip命令:

代码语言:javascript
复制
pip install jupyterthemes

您可以列出可用的主题,如下所示:

代码语言:javascript
复制
jt -l

在撰写本文时,可以使用以下主题:

代码语言:javascript
复制
chesterish
grade3
gruvboxd
gruvboxl
monokai
oceans16
onedork
solarizedd
solarizedl

看看下面的几个。有很多不错的颜色选择!

solarizedd(顶部)| gruvboxl(中间)| grade3(底部)

3) 笔记本扩展

Jupyter笔记本扩展-nbextensions是JavaScript模块,可以用来增强笔记本的功能和使用。这些扩展基本上修改了Jupyter UI以获得更健壮的功能。 我们将首先通过pip安装nbextensions:

代码语言:javascript
复制
pip install jupyter_contrib_nbextensions 
jupyter contrib nbextension install

安装完成后,启动Jupyter。您将看到一个名为NBextensions的新选项卡。一旦你选择它,你会看到许多Jupyter笔记本扩展选项!

你可以查找这些扩展的大部分,看看它们在Google快速搜索中的作用。下面我重点介绍了一些最有用的。

(1) 目录

如其名称所述,目录根据笔记本中的标签创建的标题自动生成笔记本的目录。例如,我在下面的示例图像中创建的标题是:

代码语言:javascript
复制
# This is a super big title
## This is a big title
### This is a medium title
#### This is a small title

目录在左边生成得很好。表中的每个标题都有一个链接,双击该链接可将您带到该部分。当你的笔记本开始变大,并且你有很多分区时,这是非常方便的!

(2) Hinterland(上述选项卡下,自动补全)

代码完成是大多数ide中非常常见的特性,尤其是Python的PyCharm。开发人员喜欢它,因为它使他们的工作变得如此简单,不必记住每个命令,因为他们知道他们的IDE会为他们清理东西。

Hinterland允许在Jupyter笔记本中自动完成代码。当你打字时,建议摆在你面前。当您从外部库中搜索命令时,这是最值得注意的,如下面的示例所示。超级方便!

(3) 拆分单元格

拆分单元格允许您并排查看两个单元格。当你有两个相关的单元格时,这是非常方便的,比如一个描述和它所指的可视化。

4) 使用Qgrid探索数据帧

我们的最后一站是Qgrid-一个允许您在没有任何复杂Pandas代码的情况下浏览和编辑数据帧的工具。

Qgrid以交互方式呈现Jupyter笔记本中的pandas数据帧。通过这种呈现,您可以获得诸如滚动、排序和过滤之类的直观控件,还可以通过双击所需的单元格编辑数据帧。

让我们从安装Qgrid开始:

代码语言:javascript
复制
pip install qgrid
jupyter nbextension enable --py --sys-prefix widgetsnbextension

要使用Qgrid呈现数据帧,只需导入它,然后将数据帧传递给show_grid函数,如下所示:

代码语言:javascript
复制
import qgrid
qgrid_widget = qgrid.show_grid(df, show_toolbar=True)
qgrid_widget

这样做将显示带有许多交互选项的数据帧:

  • 添加和删除行
  • 筛选行
  • 编辑单元格

还可以通过向show_grid函数传递更多参数来启用多个交互选项。您可以在GitHub官方页面上阅读有关Qgrid全部功能的更多详细信息(https://github.com/quantopian/qgrid)。

总结

增强Jupyter笔记本的4个妙招已经介绍完了。如果你想获取更多实用技巧,别担心!有更多的Jupyter小部件和扩展可供使用。Jupyter笔记本的官方文档是一个很好的入门文档,推荐感兴趣的朋友们阅读(https://jupyter.org/documentation)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3) 笔记本扩展
    • (2) Hinterland(上述选项卡下,自动补全)
      • (3) 拆分单元格
        • 4) 使用Qgrid探索数据帧
        • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档