作者:Pranjal Chaubey

翻译:宋文伯

校对:丁楠雅

本文约1700字,建议阅读5分钟

本文将通过介绍Jupyter Notebook的附加扩展组件和指令,为Jupyter Notebook赋能。帮助Python使用者大大提高Jupyter Notebook的使用体验,提升工作效率。

简介
Jupyter Notebook是当今最受Python使用者(尤其是热衷于机器学习和数据科学的Python使用者)青睐的编译环境。我在数月以前首次接触机器学习时发现了这个神器,稍加使用后就被它深深吸引。然而,这种感觉很快就消失殆尽了,因为我发现Jupyter Notebook的界面非常单调,缺乏许多有用的功能。从那时起,我开始寻找一些可以在Jupyter Notebook中使用的黑科技,来满足一名Python使用者的日常所需。
在本文中,我将会介绍一些Jupyter Notebook的附加扩展组件和指令,进而帮助Python使用者大大提高Jupyter Notebook的使用体验,从而提升工作效率。
简而言之,本文将教你如何赋能Jupyter Notebook!
一旦你顺着本文的指示操作,你将会得到(且不局限于)以下令你的Jupyter Notebooks 焕然一新的功能:
1. 无需重启Jupyter Notebook即可在多个Conda环境之间自由切换。2. 一键生成“可单击目录”(我相信大部分人会喜欢上这个功能的!)。3. 一个非常有用的草稿测试区(这是我最喜欢的功能!) - 可以在此区域中运行和测试代码,且同时不会更改Jupyter Notebook中的任何内容。4. 在代码单元内实现代码折叠 – 有效弥补了Jupyter Notebook中此类功能的空缺。5. 一键隐藏代码单元格 - 这是数据可视化时的重要功能,因为听众通常对图表而不是代码感兴趣!6. 一个超级酷的变量检查器。7. 适用于Markdown单元格的拼写检查程序。8. 夜间写代码必备的禅模式。9. 一个代码片段菜单,用于动态添加常用的Python结构,如列表理解。10. 最后压轴的是一个最棒的功能 —— 一个让人心情舒缓的午夜蓝配色方案,拯救我们疲劳的双眼!
赋能时刻
首先,白色背景会让我们的眼睛在一天的长时间工作后疲惫不堪,我们需要确保我们的Jupyter Notebook本有一个极佳的暗色主题来保护我们的视力。相信我,一旦你使用暗色主题,就再也不会愿意切换回亮色主题了。
使用以下命令安装用于更改Jupyter Notebook主题配色的package:
# Kill and exit the Notebook server# Make sure you are in the base conda environmentconda activate base# install jupyterthemespip install jupyterthemes# upgrade to latest versionpip install --upgrade jupyterthemes 在安装完成上面的package后,运行以下命令,将Jupyter Notebook默认的亮色主题更改为曼妙的深蓝色主题。你的双眼会因为这一举动而倍加感激。
# Enable Dark Modejt -t onedork -fs 95 -altp -tfs 11 -nfs 115 -cellw 88% -T 接下来,让我们看看是否可以在Jupyter Notebook中使用在Anaconda中创建的自定义环境作为内核。这将确保我们可以通过在内核菜单中的选择环境功能自如切换内核,而无需重新启动Jupyter Notebook。
假设在Anaconda创建了两个自定义环境:My NLP和Gym。为了添加这些内容进Jupyter Notebook,需要执行以下命令:

# Stop and exit your Jupyter Notebook server first# Activate your environment in the terminal conda activate my_NLP# Install the IPython Kernel pip install ipykernel# Link your environment with Jupyter python -m ipykernel install --user --name=my_NLP# Repeat steps for the other environment, gym. conda activate gympip install ipykernel python -m ipykernel install --user --name=gym

现在打开你的Jupyter Notebook,点击内核菜单中的更改内核选项,这时可以看到全部的内核,只需单击即可激活它们。

这就是新添加的内核应该出现的地方。注意那舒缓的午夜蓝色主题
对于我上面提到的所有其他很酷的功能,我们只需简单执行以下命令,为Jupyter Notebook安装一个名为nbextensions的扩展组件:

# Stop and exit your Jupyter Notebook server # Make sure you are in the base environmentconda activate base# Install the nbextensions pip install jupyter_contrib_nbextensions# Install the necessary JS and CSS files jupyter contrib nbextension install --system

启动Jupyter Notebook服务器,在开始页的第四个选项就是nbxtensions。点击它即可看到一系列Jupyter Notebook使用者所期望拥有的功能。

nbextensions 界面

正如上图所见,nbextensions有着庞大的扩展列表,甚至第一眼看上去有一些密集恐惧。不过不用担心,我们并不需要所有的扩展应用。以下我列出了个人觉得比较有用的功能:

1. 目录(2) - 只需单击一次,即可生成整个Jupyter Notebook的目录,其中包含指向各个分区的超链接。2. 草稿测试区 - 我认为最好的扩展。它提供一个单独的区域,供使用者在不干扰Jupyter Notebook其余部分的情况下进行代码测试。3. 代码折叠 – 无需解释的好功能。4. 隐藏全部输入 - 隐藏所有的代码单元格,同时始终保持输出和标记单元格可见。如果你试图向非技术人员解释你的结果,这将非常有用。5. Variable Inspector - 类似于Spyder IDE中的Variable Inspector窗口,拯救在陷于Debugging泥潭中的我们。6. 拼写检查器 - 用于对Markdown格式的单元格中的内容进行拼写检查。7. 禅模式 – 隐去界面中的干扰功能,让我们可以专注于重要的代码部分。8. 代码模版菜单 - 一个很酷的常用代码模版集合,从List Comprehensions到Pandas以及两者之间的一切。这还不是全部,我们可以修改并在此之中添加自己想要的自定义代码模版。
上面8条包含了我日常所需的扩展程序,但在此我也鼓励大家勇于尝试其他的扩展程序,比如一些我觉得很有趣的程序:ScrollDown,table_beautifier以及Hinterland。

代码模版扩展与工作中的目录生成扩展一起使用

草稿测试区扩展

尾记

如果您对Jupyter Notebook的这些增强功能有任何看法,或者在安装扩展时遇到问题,欢迎在下方的留言区评论!

原文标题:Supercharging Jupyter Notebooks原文链接:https://towardsdatascience.com/supercharging-jupyter-notebooks-e22f5ad7ca18
编辑:王菁校对:杨学俊

译者简介

宋文伯,伦敦政治经济学院硕士在读,热爱前沿交叉学科研究。十分荣幸能够成为数据派THU的其中一员,我将尽我所能为组织建功立业,与有共同追求的伙伴一起,对数据科学事业做出更多更大的贡献。

翻译组招募信息

工作内容:将选取好的外文前沿文章准确地翻译成流畅的中文。如果你是数据科学/统计学/计算机专业的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友,数据派翻译组欢迎你们加入!

你能得到:提高对于数据科学前沿的认知,提高对外文新闻来源渠道的认知,海外的朋友可以和国内技术应用发展保持联系,数据派团队产学研的背景为志愿者带来好的发展机遇。

其他福利:和来自于名企的数据科学工作者,北大清华以及海外等名校学生共同合作、交流。

点击文末“阅读原文”加入数据派团队~

点击“阅读原文”拥抱组织

独家|手把手教你赋能Jupyter Notebooks!(附代码)相关推荐

  1. 独家 | 手把手教你做数据挖掘 !(附教程数据源)

    作者:宋莹 本文长度为10427字,建议阅读20+分钟 本文为你介绍数据挖掘的知识及应用. 引言 最近笔者学到了一个新词,叫做"认知折叠".就是将复杂的事物包装成最简单的样子,让大 ...

  2. 手把手教你入门Hadoop(附代码资源)

    作者:Piotr Krewski&Adam Kawa 翻译:陈之炎 校对:丁楠雅 本文约6000字,建议阅读10分钟. 本文为你介绍Hadoop的核心概念,描述其体系架构,指导您如何开始使用H ...

  3. 手把手教你学-卡尔曼滤波(附代码)

    很多人都知道卡尔曼滤波的神奇之处,很多人也看过别人的公式和代码,你有可能会有疑问,这些公式究竟是如何写成代码的.下面我来为你们介绍以下我的学习过程: 卡尔曼滤波器的概念及特点 卡尔曼滤波(Kalman ...

  4. 独家 | 手把手教TensorFlow(附代码)

    上一期我们发布了"一文读懂TensorFlow(附代码.学习资料)",带领大家对TensorFlow进行了全面了解,并分享了入门所需的网站.图书.视频等资料,本期文章就来带你一步步 ...

  5. 【NLP傻瓜式教程】手把手带你RCNN文本分类(附代码)

    继续之前的文本分类系列 [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) [NLP傻瓜式教程]手把手带你fastText文本分类(附代码) ...

  6. 【NLP傻瓜式教程】手把手带你HAN文本分类(附代码)

    继续之前的文本分类系列 [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) [NLP傻瓜式教程]手把手带你fastText文本分类(附代码) ...

  7. 【NLP傻瓜式教程】手把手带你fastText文本分类(附代码)

    写在前面 已经发布: [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) 继续NLP傻瓜式教程系列,今天的教程是基于FAIR的Bag of ...

  8. 【NLP保姆级教程】手把手带你RNN文本分类(附代码)

    写在前面 这是NLP保姆级教程的第二篇----基于RNN的文本分类实现(Text RNN) 参考的的论文是来自2016年复旦大学IJCAI上的发表的关于循环神经网络在多任务文本分类上的应用:Recur ...

  9. 手把手教你用Vscode Debugger调试代码

    http://shooterblog.site/2018/05/19/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E7%94%A8Vscode%20De ...

最新文章

  1. 漫画 | 程序媛小姐姐带你一次了解什么是排序算法
  2. mysql5.6安装及实现双向备份
  3. 实战SSM_O2O商铺_34【商品】商品编辑之Controller层的实现
  4. 启用Windows Server 2012的远程桌面
  5. catia中sew的用法_CATIA超级副本(PowerCopy)使用方法总结 | 坐倚北风
  6. mui dtpicker 时间的设置 以及MUI的弹窗
  7. C++ MFC实现基于RFID读写器的上位机软件
  8. css img 适配尺寸_img图片自适应布局_HTML5教程_郭隆邦技术博客
  9. linux时间管理代码,第二章、linux的时间管理
  10. PAT甲级1020(附带前中序遍历の绝对干货)
  11. Linux 程序运行时报错:找不到库文件[cannot open shared object file: No such file or directory ```](转载)
  12. 设置Log4j配置文件路径
  13. matlab 信号去直流,Speex中的近端信号去直流和预加重操作
  14. 使用python进行缺失数据估算(missing data imputation in python)
  15. 计算机开机的四个画面,教你修改电脑开机时“欢迎使用”四个字!
  16. Linux系统各发行版镜像下载
  17. 文化是一种meme,NFT也是
  18. 经营者思维—赢在战略人力资源管理
  19. vim教程之基本使用
  20. 朱砂在我心,倾你一世情

热门文章

  1. 20.Feature分支
  2. Windows系统一键安装zabbix agent
  3. DJango-如何快速准备Python虚拟开发环境并快速定制一个项目
  4. 人人出售部分Social Finance 股票 获益9190万美
  5. MSSQL2008R2 Failover Cluster(A-A)配置实验
  6. [Asp.net MVC]Asp.net MVC5系列——第一个项目
  7. Tomcat发布项目方法!
  8. springboot事务回滚源码_Spring Boot中的事务是如何实现的
  9. android5.0 广播失效,解决Android 8.0及以上系统接收不到广播的问题
  10. python三方库 importlib导入API用法 相对导入 绝对导入