你真的会用Jupyter吗?这里有7个进阶功能助你效率翻倍 |
您所在的位置:网站首页 › python用jupyter › 你真的会用Jupyter吗?这里有7个进阶功能助你效率翻倍 |
原作 Parul Pandey 郭一璞 编译 量子位 出品 | 公众号 QbitAI 作为一个超好用的交互式笔记本,Jupyter总是深受开发者的喜爱。 不过,除了基础的写文档之外,其实Jupyter还有N多功能,简直是一个集视频、图片、PPT、多种交互于一身的万花筒。 如果不会用,你可能错过了Jupyter 99%的功能。 Medium上走向数据科学(Towards Data Science)专栏的作者Parul Pandey就总结了七大Jupyter的进阶用法,量子位编译如下~ 执行shell命令Shell是一种与计算机进行文本交互的方式。 一般来讲,当你正在使用Python编译器,需要用到命令行工具的时候,要在shell和IDLE之间进行切换。 但是,如果你用的是Jupyter,就完全不用这么麻烦了,你可以直接在命令之前放一个“!”,就能执行shell命令,完全不用切换来切换去,就能在IPython里执行任何命令行。 1In [1]: !ls2example.jpeg list tmp3In [2]: !pwd4/home/Parul/Desktop/Hello World Folder'5In [3]: !echo "Hello World"6Hello World7我们甚至可以将值传递给shell,像下面这样: 1In [4]: files= !ls2In [5]: print(files)3['example.jpeg', 'list', 'tmp']4In [6]: directory = !pwd5In [7]: print(directory)6['/Users/Parul/Desktop/Hello World Folder']7In [8]: type(directory)8IPython.utils.text.SList注意,返回结果的数据类型不是列表。 给Jupyter换主题使用Jupyter主题,不仅能让你的Jupyter界面更好看、更舒服,还能让屏幕上的代码看起来更显眼。 比如Chesterish主题: solarizedl主题: 来看一下具体的操作方法: 第一步,安装: 1pip install jupyterthemes第二步,加载可用主题列表: 1jt -l第三步,选择你想要的主题: 1# selecting a particular theme2jt -t 3# reverting to original Theme4jt -r现在可用的主题有: chesterishgrade3gruvboxdgruvboxl monokaioceans16onedorksolarizeddsolarizedl 把名字填进去就好啦。 不过,每次换主题的时候都要重新加载Jupyter,才能看到主题变化。 另外我们上面讲的在命令之前加“!”也一样可用。 笔记本扩展笔记本扩展(nbextensions)是一种JavaScript模块,可以加载到笔记本前端页面上,可以大大提升用户体验。 比如下面这些扩展工具,简直能让效率提升10000倍。 HinterlandHinterland功能可以让你每敲完一个键,就出现下拉菜单,可以直接选中你需要的词汇。 SnippetsSnippets在工具栏里加了一个下拉菜单,可以非常方便的直接插入代码段,完全不用手动敲。 拆分单元格拆分笔记本中的单元格,改成相邻的模式,看起来就像分了两栏。 目录这个功能可以自动找到所有的标题,生成目录。 并且这个目录还是移动的呦,你可以放在侧边栏,也可以拖动到任何你喜欢的地方悬浮起来。 折叠一个标题下的全部内容如果你的代码太长,觉得滚动过去太麻烦,可以直接折叠掉。 Autopep8一键美化代码,强迫症的福音。 安装方法最后看一下怎么装,需要用到conda: 1conda install -c conda-forge jupyter_nbextensions_configurator或者用pip: 1pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install2#incase you get permission errors on MacOS,3pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install --user然后把Jupyter打开,你就可以看到NBextensions这个选项卡了。 找不到的话就去菜单的Edit里面找。 搞定。 Jupyter小工具还有一些Jupyter小工具,比如滑块、文本框之类的部分,可以做一些方便的交互。 滑块1def f(x):2 return x3# Generate a slider 4interact(f, x=10,);布尔值生成复选框1# Booleans generate check-boxes2interact(f, x=True);字符串生成文本区域1# Strings generate text areas2interact(f, x='Hi there!');播放器 1play = widgets.Play( 2 # interval=10, 3 value=50, 4 min=0, 5 max=100, 6 step=1, 7 description="Press play", 8 disabled=False 9)10slider = widgets.IntSlider()11widgets.jslink((play, 'value'), (slider, 'value'))12widgets.HBox([play, slider])日历1widgets.DatePicker(2 description='Pick a Date',3 disabled=False4)不过这个部件只能咋Chrome和Edge里用,Firefox和Safari不支持。 调色盘1widgets.ColorPicker(2 concise=False,3 description='Pick a color',4 value='blue',5 disabled=False6)标签1tab_contents = ['P0', 'P1', 'P2', 'P3', 'P4']2children = [widgets.Text(description=name) for name in tab_contents]3tab = widgets.Tab()4tab.children = children5for i in range(len(children)):6 tab.set_title(i, str(i))7tab其他的小部件,可以在文末的传送门跳转到GitHub寻找。 安装方法1# pip2pip install ipywidgets3jupyter nbextension enable --py widgetsnbextension4# Conda5conda install -c conda-forge ipywidgets6#Installing ipywidgets with conda automatically enables the extension使用“interact”功能自动创建UI控件,这是使用IPython最方便的方法。 1# Start with some imports!2from ipywidgets import interact3import ipywidgets as widgetsQgridQgrid也是一个Jupyter的小部件,不过它主要用于数据帧,装上之后,就可以像操作Excel里的筛选功能一样,方便的处理数据。 安装方法用pip安装: 1pip install qgrid2jupyter nbextension enable --py --sys-prefix qgrid3# only required if you have not enabled the ipywidgets nbextension yet4jupyter nbextension enable --py --sys-prefix widgetsnbextension用conda安装: 1# only required if you have not added conda-forge to your channels yet2conda config --add channels conda-forge3conda install qgrid放PPT人在江湖飘,难免遇到要做PPT的时候。 但是,如果你的内容都已经放在Jupyter里了,再重新导入PPT,太麻烦了,我们自动转换吧。 一种方法是用Jupyter内置的PPT选项,依次点击菜单栏里的View → Cell Toolbar → Slideshow,之后每个单元格上面都会有一个灰色的横条,选Sub-Slide。 然后输入以下代码: 1jupyter nbconvert *.ipynb --to slides --post serve2# insert your notebook name instead of *.ipynb好了,现在就变成PPT样式的了,显示在端口8000,你也可以查看源代码找到PPT文件。 你也可以提前换好主题,比如onedork主题,然后再转换成PPT的的时候就是同一个主题风格的PPT了。 不过,用PyTorch默认方法生成的PPT代码不能编辑,这个时候就要用到RISE插件了。 RISE用到reveal.js来运行PPT,可以不退出PPT,直接运行代码。 先来安装RISE,推荐用conda: 1conda install -c damianavila82 rise其实不太推荐pip: 1pip install RISE然后调用JS和CSS: 1jupyter-nbextension install rise --py --sys-prefix2#enable the nbextension:3jupyter-nbextension enable rise --py --sys-prefix安装好啦,现在重新打开你的Jupyter Notebook,发现一个新的扩展,名叫“Enter/Exit RISE Slideshow”。 戳一下,一个可以边演示边改的PPT就好了。 嵌入链接和pdf扔链接再跳转实在是太麻烦了,不如直接把素材放进Jupyter里面。 嵌入链接1#Note that http urls will not be displayed. Only https are allowed inside the Iframe2from IPython.display import IFrame3IFrame('https://en.wikipedia.org/wiki/HTTPS', width=800, height=450)操作方式如下,当然你需要把链接换成你要放的链接: 嵌入pdf1from IPython.display import IFrame2IFrame('https://arxiv.org/pdf/1406.2661.pdf', width=800, height=450)同样,把pdf链接换成你需要用的pdf。 传送门原文:Bringing the best out of Jupyter Notebooks for Data ScienceParul Pandey, Towards Data Sciencehttps://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 Jupyter主题https://github.com/dunovank/jupyter-themes IPython小部件https://github.com/jupyter-widgets/ipywidgets — 完 — 年度评选报名 加入社群 量子位AI社群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式; 此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。 进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解) 诚挚招聘 量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。 量子位 QbitAI · 头条号签约作者 վ'ᴗ' ի 追踪AI技术和产品新动态 喜欢就点「好看」吧 ! |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |