牧者

大风起兮云飞扬

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

02Jupyter Notebook的拓展功能

<a id=conda></a>

1. 关联Jupyter Notebook和conda的环境和包——“nb_conda”☆

① 安装

conda install nb_conda

执行上述命令能够将你conda创建的环境与Jupyter Notebook相关联,便于你在Jupyter Notebook的使用中,在不同的环境下创建笔记本进行工作。

② 使用

  • 可以在Conda类目下对conda环境和包进行一系列操作。


     
    conda类目
  • 可以在笔记本内的“Kernel”类目里的“Change kernel”切换内核。


     
    切换内核

③ 卸载

canda remove nb_conda

执行上述命令即可卸载nb_conda包。

<a id=nbextensions></a>

2. Markdown生成目录

  • 不同于有道云笔记的Markdown编译器,Jupyter Notebook无法为Markdown文档通过特定语法添加目录,因此需要通过安装扩展来实现目录的添加。
conda install -c conda-forge jupyter_contrib_nbextensions
  • 执行上述命令后,启动Jupyter Notebook,你会发现导航栏多了“Nbextensions”的类目,点击“Nbextensions”,勾选“Table of Contents ⑵”


     
    nbextensions
  • 之后再在Jupyter Notebook中使用Markdown,点击下图的图标即可使用啦。


     
    添加目录

3. Markdown在文中设置链接并定位

在使用Markdown编辑文档时,难免会遇到需要在文中设定链接,定位在文档中的其他位置便于查看。因为Markdown可以完美的兼容html语法,因此这种功能可以通过html语法当中“a标签”的索引用法来实现。

语法格式如下:

[添加链接的正文](#自定义索引词)
<a id=自定义索引词>跳转提示</a>
  • 注意:

    1. 语法格式当中所有的符号均是英文半角
    2. “自定义索引词”最好是英文,较长的词可以用下划线连接。
    3. “a标签”出现在想要被跳转到的文章位置,html标签除了单标签外均要符合“有头(<a>)必有尾(</a>)”的原则。头尾之间的“跳转提示”是可有可无的。
    4. “a标签”中的“id”值即是为正文中添加链接时设定的“自定义索引值”,这里通过“id”的值实现从正文的链接跳转至指定位置的功能。
  • 例:

    1. 有跳转提示语


       
      有提示语
    2. 无跳转提示语


       
      无提示语

4. 加载指定网页源代码

① 使用场景

想要在Jupyter Notebook中直接加载指定网站的源代码到笔记本中。

② 方法

执行以下命令:

%load URL

其中,URL为指定网站的地址。

③ 例

 
加载指定网站源代码

5. 加载本地Python文件

① 使用场景

想在Jupyter Notebook中加载本地的Python文件并执行文件代码。

② 方法

执行以下命令:

%load Python文件的绝对路径

③ 注意

  1. Python文件的后缀为“.py”。
  2. “%load”后跟的是Python文件的绝对路径
  3. 输入命令后,可以按CTRL 回车来执行命令。第一次执行,是将本地的Python文件内容加载到单元格内。此时,Jupyter Notebook会自动将“%load”命令注释掉(即在前边加井号“#”),以便在执行已加载的文件代码时不重复执行该命令;第二次执行,则是执行已加载文件的代码。

④ 例

 
加载本地Python文件

6. 直接运行本地Python文件

① 使用场景

不想在Jupyter Notebook的单元格中加载本地Python文件,想要直接运行。

② 方法

执行命令:

%run Python文件的绝对路径

!python3 Python文件的绝对路径

!python Python文件的绝对路径

③ 注意

  1. Python文件的后缀为“.py”。
  2. “%run”后跟的是Python文件的绝对路径
  3. “!python3”用于执行Python 3.x版本的代码。
  4. “!python”用于执行Python 2.x版本的代码。
  5. “!python3”和“!python”属于 !shell命令 语法的使用,即在Jupyter Notebook中执行shell命令的语法。
  6. 输入命令后,可以按 CTRL 回车 来执行命令,执行过程中将不显示本地Python文件的内容,直接显示运行结果。

④ 例

 
直接运行Python文件

7. 在Jupyter Notebook中获取当前位置

① 使用场景

想要在Jupyter Notebook中获取当前所在位置的绝对路径

② 方法

%pwd

!pwd

③ 注意

  1. 获取的位置是当前Jupyter Notebook中创建的笔记本所在位置,且该位置为绝对路径
  2. “!pwd”属于 !shell命令 语法的使用,即在Jupyter Notebook中执行shell命令的语法。

④ 例

 
获取当前路径

8. 在Jupyter Notebook使用shell命令

① 方法一——在笔记本的单元格中

⑴ 语法

!shell命令
  • 在Jupyter Notebook中的笔记本单元格中用英文感叹号“!”后接shell命令即可执行shell命令。

⑵ 例

 
shell命令

② 方法二——在Jupyter Notebook中新建终端

⑴ 启动方法

在Jupyter Notebook主界面,即“File”界面中点击“New”;在“New”下拉框中点击“Terminal”即新建了终端。此时终端位置是在你的家目录,可以通过pwd命令查询当前所在位置的绝对路径。

⑵ 关闭方法

在Jupyter Notebook的“Running”界面中的“Terminals”类目中可以看到正在运行的终端,点击后边的“Shutdown”即可关闭终端。

⑶ 例

 
终端

9. 隐藏笔记本输入单元格

① 使用场景

在Jupyter Notebook的笔记本中无论是编写文档还是编程,都有输入(In [])和输出(Out [])。当我们编写的代码或文档使用的单元格较多时,有时我们只想关注输出的内容而暂时不看输入的内容,这时就需要隐藏输入单元格而只显示输出单元格。

② 方法一

⑴ 代码

from IPython.display import display
from IPython.display import HTML
import IPython.core.display as di # Example: di.display_html('<h3>%s:</h3>' % str, raw=True)

# 这行代码的作用是:当文档作为HTML格式输出时,将会默认隐藏输入单元格。
di.display_html('<script>jQuery(function() {if (jQuery("body.notebook_app").length == 0) { jQuery(".input_area").toggle(); jQuery(".prompt").toggle();}});</script>', raw=True)

# 这行代码将会添加“Toggle code”按钮来切换“隐藏/显示”输入单元格。
di.display_html('''<button onclick="jQuery('.input_area').toggle(); jQuery('.prompt').toggle();">Toggle code</button>''', raw=True)

在笔记本第一个单元格中输入以上代码,然后执行,即可在该文档中使用“隐藏/显示”输入单元格功能。

  • 缺陷:此方法不能很好的适用于Markdown单元格。

⑵ 例

 
隐藏/显示方法一

③ 方法二

⑴ 代码

from IPython.display import HTML

HTML('''<script>
code_show=true; 
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
} 
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')

在笔记本第一个单元格中输入以上代码,然后执行,即可在该文档中使用“隐藏/显示”输入单元格功能。

  • 缺陷:此方法不能很好的适用于Markdown单元格。

⑵ 例

 
隐藏/显示方法二

10. 魔术命令

由于目前暂时用不到过多的魔术命令,因此暂时先参考官网的文档

<a id=ipykernel></a>



作者:Raxxie
链接:https://www.jianshu.com/p/91365f343585
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted on 2019-11-21 15:24  牧者.D  阅读(466)  评论(0)    收藏  举报