如何理解jupyter notebook mac中的magic 关键字

[译]27个Jupyter Notebook小提示与技巧 - 简书
[译]27个Jupyter Notebook小提示与技巧
Jupyter Notebook
Jupyter notebook, 前身是IPython notebook, 它是一个非常灵活的工具,有助于帮助你构建很多可读的分析,你可以在里面同时保留代码,图片,评论,公式和绘制的图像。
screenshot
Jupyter具有非常强的可扩展性,支持很多编程语言,并且易于部署到你的个人电脑和几乎所有的服务器上 -- 你只需要使用ssh或http接入即可。最重要的是,它完全免费。
Jupyter默认设置使用Python kernel,正因此以前叫做IPython notebook. Jupyter notebook源自于Jupyter项目, Jupyter这个名字是它被设计所支持三个核心编程语言的缩写词:JUlia,PYThon, 和 R, 启发自木星这个词:Jupiter.
接下来的内容将向你展示27个让Jupyter用的更加舒心的建议与技巧。
1. Keyboard Shortcuts
每一个进阶用户都知道,键盘快捷键将会为我们节省许多时间。Jupyter在顶部的菜单里保留了许多快捷键:Help & keyboard Shortcuts. 每次更新Jupyter时,都值得再次进行查看,因为新的快捷键总是不断被添加进来。
另一个查看快捷键的方式是使用命令面板:Cmd + Shift + P(或者Linux和Windows上 Ctrl + Shift + P)。这个对话框将会帮助你通过名称运行任何命令 -- 这非常有用,尤其当你不知道一个命令的快捷键或者你想要执行的命令没有快捷键时。这个功能非常类似与Mac上的Spotlight搜索,一旦你开始使用这个功能,你就会发现没有它的日子该怎么办!
这里是一些我喜欢的快捷键:
Esc + F查找和替换你的代码,但不包括代码的输出内容。
Esc + o打开代码块输出。
选择多个cell。
Shift + J或Shift + Down向下选中下一个cell. 你可以通过Shift + K或Shift + Up向上选中cell。
一旦cell被选中,接着你可以进行批量删除/复制/剪切/粘贴.当你需要移动一部分notebook时,这非常有用。
你也可以执行Shift + M对多个cell进行合并。
2. Pretty Display of Varibles
这部分内容可能很多人都知道。如果对带有一个变量或是未复制语句的cell执行操作,Jupyter将会打印该变量而无需一个输出语句。这非常有用,尤其是使用Pandas DataFrames进行处理时,因为输出将会被整齐地格式化为一个表格。
接下来的内容可能没那么人知道:你可以选择修改ast_note_iteractivelykernal选项来使得Jupyter为每一行的变量或语句执行这个操作,以便你可以立即看到多条语句一起输出。
多条语句同时输出
如果你想要所有的Jupyter实例(Notebook和Console)都设置该选项,只需创建~/.ipython/profile_default/ipython_config.py文件并写入一下内容:
c = get_config()
# Run all nodes interactively
c.InteractiveShell.ast_node_interactivity = "all"
3. Easy links to documentation
在Help菜单你可以找到一些常用库文档的连接,包括NumPy, Pandas, SciPy 和 Matplotlib.
同时别忘了在一个库,方法或变量前加上?,你可以获得一个快速的语法说明。
快捷语法查看
4. Plotting in notebooks
在notebook中生成绘图有许多选项:
, 使用%matplotlib inline进行激活。
%matplotlib notebook提供了一些交互性,不过可能会有点慢,因为渲染由服务器端完成。
为matplotlib代码提供了另一个渲染器(使用d3)。非常漂亮,不过尚未完整。
是构建交互性绘图的一个更好的选择。
也可以生成漂亮的绘图,不过是付费服务。
交互式图表
5. Jupyter Magic Commands
上面的%matplotlib inline就是一个所谓的Jupyter Magic(Jupyter魔法)命令。
推荐阅读,你会发现这非常有用。下面是一些我所喜爱的魔法命令:
6. Jupyter Magic - %env:Set Environment Variables
你可以管理notebook的环境变量而无需重启jupyter server. 一些库(比如theano)使用环境变量来控制行为,%env是最方便的一个途径。
%env环境变量
7. Jupyter Magic - %run:Excute python code
%run可以从.py文件执行Python代码. 更少的人知道的是它也可以执行其他的Jupyter notebook,这也非常有用。
%run运行python或jupyter notebook
注意使用%run并不等同于导入一个Python模块.
8. Jupyter Magic - %load:Insert the code from an external script
这将会使用外部脚本来代替cell的内容。你可以使用本地机器上的文件也可以使用一个URL.
%load加载外部脚本
9. Jupyter Magic - %store:Pass variables between notebooks
%store命令可以让你在两个不同的notebook间传递变量。
10. Jupyter Magic - %who:List all variables of global scope.
不带参数的%who命令将会列出全局范围内存在的所有变量。如果传入参数,比如str,将会列出指定类型的所有变量。
%who查看全局变量
11. Jupyter Magic - Timing
对于计时有两个十分有用的魔法命令:%%time 和 %timeit. 如果你有些代码运行地十分缓慢,而你想确定是否问题出在这里,这两个命令将会非常方便。
%%time将会给出cell的代码运行一次所花费的时间。
%timeit使用Python的timeit模块,它将会执行一个语句100,000次(默认情况下),然后给出运行最快3次的平均值。
12. Jupyter Magic - %%writefile and %pycat:Export the contents of a cell/Show the contents of an external script
使用%%writefile魔法保存cell的内容到一个外部文件。%pycat则刚好相反,并且会向你展示高亮后的外部文件。
%writefile & %pycat
13. Jupyter Magic - %prun:Show how much time your program spent in each function
使用%prun statement_name将会产生一个有序表格来展示在该语句中所调用的每个内部函数调用的次数,每次调用的时间与该函数累计运行的时间。
14. Jupyter Magic - Debugging with %pdb
Jupyter有一个自己的,这使得我们能够进入函数内部看看到底发生了什么。
你可以在这里
15. Suppress the output of a final function
有时候你可能会想要抑制最后一行函数的输出,比如当我们绘制图像的时候。为此,你只需加上一个分号即可。
16. Executing Shell Commands
在notebook中执行shell命令非常容易,你可以像下面这样列出当前目录下的文件:
或是检查或管理包.
17. Using LaTeX for formulas
当你在markdown cell中书写时,它会被MathJax渲染成一个公式。
$$ P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B)} $$
会被渲染成为:
$$ P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B)} $$
markdown是notebook中十分重要的一部分,别忘了使用它来传达你的想法!
18. Run code from a different kernel in a notebooks
如果想要的话,你可以将多个kernel的代码组合到一个notebook中。
在每个cell的开头使用相关的魔法命令来声明你想使用的kernel:
运行多种类型的kernel
19. Install other kernels for Jupyter
Jupyter其中的一个重要特色就是能够运行不同语言,你只需安装相关的kernel即可。比如,下面的例子是如何安装 R kernel.
快捷选择:使用anaconda安装R kernel
如果你使用anaconda安装你的环境,这会相当简单。你只需要在terminal中运行下面的命令:
conda install -c r r-essentials
不那么快捷的方式:手动安装R kernel
如果你不是使用anaconda, 这个过程可能稍显复杂。首先你需要从安装R, 如果你还没有安装的话。
安装R完毕后,打开R console并运行如下命令:
install.packages(c('repr', 'IRdisplay', 'crayon', 'pbdZMQ', 'devtools'))
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec()
# to register the kernel in the current R installation
20. Running R and Python in the same notebook
对于此最好的解决方案是安装(需要一个可以工作的R版本), 通过pip可以很容易安装:
pip install rpy2
你可以同时使用这两种语言,甚至在它们之间传递变量:
一个很好的示例
21. Writing functions in other languages
有时候numpy的速度仍旧不够快,我们需要自己写一些更快的代码。
原则上,你可以以动态链接库的方式编译函数,然后用python进行包装。
不过如果有人能够帮你完成这部分烦人的工作是不是非常棒呢?
你可以用cython或fortran写函数并直接从Python代码进行调用。
首先你需要安装:
!pip install cython fortran-magic
个人来说我更喜欢使用fortran, 我发现它对数值统计函数十分方便。更多用法上的细节可以.
也有一些其他方式可以加速你的Python代码。更多示例可以/
22. Multicursor support
Jupyter支持多光标操作,与Sublime Text类似。按住Alt进行点击和拖拽鼠标即可。
23. Jupyter-contrib extensions
是一系列能够给Jupyter带来许多功能的扩展,比如jupyter spell-checker 和 code-formatter.
24. Create a presentation from a Jupyter notebook
Damian Avila的 允许你从已有的一个notebook创建一个powerpoint风格的报告。
你可以通过conda安装RISE:
conda install -c damianavila82 rise
或通过pip:
pip install RISE
然后执行下面的代码安装并启用扩展:
jupyter-nbextension install rise --py --sys-prefix
jupyter-nbextension enable rise --py --sys-prefix
25. The Jupyter output system
notebook以HTML的方式进行展示,cell的输出也可以是HTML,所以事实上你可以返回任何东西:视频/音频/图像。
下面的例子我扫描了
26. 'Big data' analysis
对于大规模数据样本的查询/处理也有一些解决方案:
是使用Python进行简单map-reduce操作的一个很好的选择。
spark-sql 魔法
27. Sharing notebooks
分享notebook最简单的方式是直接使用notebook文件(.ipynb).不过对于那些不使用Jupyter的人来说,你也可以这么做:
使用菜单项File & Download as & HTML将notebook转换成HTML。
使用gist或github分享notebook,它们都会对notebook进行渲染展示。
如果你上传notebook到一个github仓库,你可以使用十分便利的服务来允许第三者半小时的交互性身份接入你的仓库。
安装, 当你组织一个小型课程或研讨会没有精力关心学生的机器状况时,这非常方便。
将notebook保存到比如dropbox中,然后将连接放到. nbviewer将会渲染你存储在任何地方的notebook.
使用File & Download as & PDF菜单将notebook保存为一个PDF。如果你打算这么做,强烈推荐你阅读Julius Schulz非常棒的一篇文章.
[译者]useful links: 原文地址:
尘世中一个迷途小书童> notebook
1、spark2 0安装就不说了,网上有很多,不会的话给我留言。2、我们在spark2 0下用python开发的
IPython + Notebook 提供了一种基于云的科学计算开发环境。它既能够使开发者享受到云计算的
笔记本风扇转速调整工具是一个简单而有用的软件,从地上爬起来,为您提供控制笔记本电
Win10笔记本三星Notebook 7 Spin体验:为性能牺牲便携性。用户对于笔记本电脑的诉求不外乎便
我主要使用的编程环境是Jupyter Notebook 4 2 1,因为可以调整每一个代码块,方便
纠错什么的
Ubuntu16 04安装Hadoop2 6+Spark1 6,并安装python开发工具Jupyter notebook,通过pyspark测试一个实例,
概述如何搭建开发环境,安装Python3、安装jupyter notebook以及其他科学栈如numpy。
  不久前,微软推出了初代 OneNote Class Notebook 课堂作业插件,其中还集成了评分系统。接
  1、主题
  详细介绍如何使用PyCharm创建一个IPython Notebook(基于Web技术的交互式计
Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接
Polya定理应用:
题意:给出一个置换B,问有没有一个置换A,使得A^2=B。
postgresql
psql是相当优秀的数据库之一,也号称是最先进的数据库,作为开源数据库
给出26个大写字母组成 字符串B问是否存在一个置换A使得A^2 = B
书上的证明结论
2个长度为n
一个星期前曾在仙XX餐厅用iPhone做软件测试,具体看我百度博客和51cto吧这里就不上了!今
/notebook/my_jsb.php?showType=item&p=1&tim=&sort=2%20and%201=2%20union%20select%
WordPress的这款Diary/Notebook主题是有site5设计的一款个人日记blog系统主题.近期爆出了邮件欺骗
存在sql注入 泄漏用户信息/notebook/jsb_exportData.php?&sort=1 存在sql注入
留言簿部分: &&&班级成员留言簿: 显示留言:class/notebook/index.php(做为现在的主
班级成员留言簿管理: class/notebook/delnote.php(做为现在的主流开发语言) &?php(做为现在的主
1、spark2 0安装就不说了,网上有很多,不会的话给我留言。2、我们在spark2 0下用python开发的
IPython + Notebook 提供了一种基于云的科学计算开发环境。它既能够使开发者享受到云计算的
笔记本风扇转速调整工具是一个简单而有用的软件,从地上爬起来,为您提供控制笔记本电
Win10笔记本三星Notebook 7 Spin体验:为性能牺牲便携性。用户对于笔记本电脑的诉求不外乎便
我主要使用的编程环境是Jupyter Notebook 4 2 1,因为可以调整每一个代码块,方便
纠错什么的
Ubuntu16 04安装Hadoop2 6+Spark1 6,并安装python开发工具Jupyter notebook,通过pyspark测试一个实例,
概述如何搭建开发环境,安装Python3、安装jupyter notebook以及其他科学栈如numpy。
  不久前,微软推出了初代 OneNote Class Notebook 课堂作业插件,其中还集成了评分系统。接
  1、主题
  详细介绍如何使用PyCharm创建一个IPython Notebook(基于Web技术的交互式计
Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接
Polya定理应用:
题意:给出一个置换B,问有没有一个置换A,使得A^2=B。
热门文章热门标签
12月10日 |
12月10日 |
12月10日 |
12月10日 |
12月10日 |
12月10日 |
12月10日 |
12月10日 |windows中jupyter(原ipython&notebook)中文件工作路径的设置_我比东风破_新浪博客
windows中jupyter(原ipython&notebook)中文件工作路径的设置
ipython notebook 改名叫jupyter了。
在cmd中,​输入“ipython notebook”或“jupyter
notebook”打开notebook,此时cmd的当前路径即为notebook的工作路径。
另外,可通过设置config文件的方法来设置固定的工作路径。
1 选择一个用于存放config文件的文件夹
2 在cmd中进入该文件夹的路径
3在cmd中 输入​命令 jupyter notebook
--generate-config
此时在该文件夹中便生成一个notebook的config文件​,文件名是“jupyter_notebook_config.py”
​5 打开该文件,修改
“# The directory to use for notebooks and kernels.”下面的
“#&c.NotebookApp.notebook_dir =
''”​为
“c.NotebookApp.notebook_dir = '指定的工作路径'”​(注意将#号删除)
参考链接:
我比东风破
博客等级:
博客积分:0
博客访问:6,514
关注人气:0
荣誉徽章:左手程序员,右手作家:你必须会的Jupyter Notebook
在数据分析的道路上,你一定曾有过为新发现而激动不已的时刻,此时你急于将自己的发现告诉大家,却遇到了这样的问题:如何将我的分析过程清晰地表述出来呢? 为了能与同行们有效沟通,你需要重现整个分析过程,并将说明文字、代码、图表、公式、结论都整合在一个文档中。显然传统的文本编辑工具并不能满足这一需求,所以这儿隆重推荐一款神器 Jupyter Notebook,不仅能在文档中执行代码,还能以网页形式分享。下图简单展示了Jupyter Notebook 文档的样式,更多示例可在 nbviewer 中找到。Jupyter Notebook 文档示例本文将按如下内容来展开:一、Jupyter Notebook 介绍文学编程历史传承优点二、Jupyter Notebook 使用入门安装运行界面三、Jupyter Notebook 进阶功能数学公式编辑幻灯片制作魔术关键字一、Jupyter Notebook 介绍文学编程在介绍 Jupyter Notebook 之前,让我们先来看一个概念:文学编程 ( Literate programming ),这是由 Donald Knuth 提出的编程方法。传统的结构化编程,人们需要按计算机的逻辑顺序来编写代码;与此相反,文学编程则可以让人们按照自己的思维逻辑来开发程序。简单来说,文学编程的读者不是机器,而是人。 我们从写出让机器读懂的代码,过渡到向人们解说如何让机器实现我们的想法,其中除了代码,更多的是叙述性的文字、图表等内容。这么一看,这不正是数据分析人员所需要的编码风格么?不仅要当好一个程序员,还得当好一个作家。那么 Jupyter Notebook 就是不可或缺的一款集编程和写作于一体的效率工具。历史传承也许说到 Jupyter 你会觉得陌生,但想必你或多或少听过鼎鼎大名的 IPython。其实Jupyter 脱胎于 IPython 项目,IPython 顾名思义,是专注于 Python 的项目,但随着项目发展壮大,已经不仅仅局限于 Python 这一种编程语言了。Jupyter 的名字就很好地释义了这一发展过程,它是 Julia、Python 以及 R 语言的组合,字形相近于木星(Jupiter),而且现在支持的语言也远超这三种了。优点以下列举了 Jupyter Notebook 的众多优点:极其适合数据分析想象一下如下混乱的场景:你在终端中运行程序,可视化结果却显示在另一个窗口中,包含函数和类的脚本存在其他文档中,更可恶的是你还需另外写一份说明文档来解释程序如何执行以及结果如何。此时 Jupyter Notebook 从天而降,将所有内容收归一处,你是不是顿觉灵台清明,思路更加清晰了呢?支持多语言也许你习惯使用 R 语言来做数据分析,或者是想用学术界常用的 MATLAB 和 Mathematica,这些都不成问题,只要安装相对应的核(kernel)即可。这里列出了 Jupyter 支持的所有语言,供您参考。分享便捷支持以网页的形式分享,GitHub 中天然支持 Notebook 展示,也可以通过 nbviewer 分享你的文档。当然也支持导出成 HTML、Markdown 、PDF 等多种格式的文档。远程运行在任何地点都可以通过网络链接远程服务器来实现运算,这里给出一个远程运行的例子,可以体验一下 Jupyter Notebook。交互式展现不仅可以输出图片、视频、数学公式,甚至可以呈现一些互动的可视化内容,比如可以缩放的地图或者是可以旋转的三维模型。这就需要交互式插件(Interactive widgets)来支持,更多内容请参考这里。二、Jupyter Notebook 使用入门安装对于初学者,最简单的方法是安装 Anaconda,因为它自带了 Jupyter Notebook。如果想进一步了解 Anaconda 的使用方法,可参考我的上一篇文章《致Python初学者们 - Anaconda入门使用指南》。对于有经验的同学,自然使用命令行最为便捷。如果在 conda 环境中,可以使用如下命令安装:conda install jupyter notebook或者直接通过 pip 安装:pip install jupyter notebook更多的安装说明请参考官网。运行如果使用 Anaconda,可以在其 Navigator 图形界面中点击打开 Notebook。但是最快捷的方法还是在命令行中输入:jupyter notebook此时你的 Web 浏览器被自动打开,显示文件目录。通过点击右上角的 new 创建新文档。进入 notebook而关闭 notebook 文档可以通过选择文件名前的复选框后,点击 Shutdown 按钮实现。如果要关闭整个服务,则在原来的终端中按 Control + C 两次。退出 notebook界面Notebook 文档是由一系列单元(Cell)构成,主要有两种形式的单元:代码单元:这里是你编写代码的地方,通过按 Shift + Enter 运行代码,其结果显示在本单元下方。代码单元左边有 In [1]: 这样的序列标记,方便人们查看代码的执行次序。Markdown 单元:在这里对文本进行编辑,采用 markdown 的语法规范,可以设置文本格式、插入链接、图片甚至数学公式。同样使用 Shift + Enter 运行 markdown 单元来显示格式化的文本。Jupyter Notebook 编辑界面类似于 Linux 的 Vim 编辑器,在 notebook 中也有两种模式:编辑模式:编辑文本和代码。选中单元并按 Enter 键进入编辑模式,此时单元左侧显示绿色竖线。命令模式:用于执行键盘输入的快捷命令。通过 Esc 键进入命令模式,此时单元左侧显示蓝色竖线。如果要使用快捷键,首先按 Esc 键进入命令模式,然后按相应的键实现对文档的操作。比如切换成代码单元(Y)或 markdown 单元(M),或者在本单元的下方增加一单元(B)。查看所有快捷命令可以按H。尽管一开始需要花费一些学习成本,但熟练使用快捷键将大大提高工作效率。试想你在键盘上十指如飞时,如果还需要通过鼠标来操作文档,是不是很影响思考速度呢?三、Jupyter Notebook 进阶功能数学公式编辑如果你曾做过严肃的学术研究,一定对 LaTeX 并不陌生,这简直是写科研论文的必备工具,不但能实现严格的文档排版,而且能编辑复杂的数学公式。在 Jupyter Notebook 的 markdown 单元中我们也可以使用 LaTeX 的语法来插入数学公式。在文本行中插入数学公式,使用一对 $符号,比如质能方程 $E = mc^2$。如果要插入一个数学区块,则使用一对 $$ 符号。比如下面公式表示 z=x/y:$$ z = /frac{x}{y} $$如何在 notebook 中使用 LaTeX,可进一步参考 A Primer on Using LaTeX in Jupyter Notebooks 这篇文章。幻灯片制作既然Jupyter Notebook 擅长展示数据分析的过程,除了通过网页形式分享外,当然也可以将其制作成幻灯片的形式。这里有一个幻灯片示例供参考,其制作风格简洁明晰。那么如何用 Jupyter Notebook 制作幻灯片呢?首先在 notebook 的菜单栏选择 View & Cell Toolbar & Slideshow,这时在文档的每个单元右上角显示了 Slide Type 的选项。通过设置不同的类型,来控制幻灯片的格式。有如下5中类型:Slide:主页面,通过按左右方向键进行切换。Sub-Slide:副页面,通过按上下方向键进行切换。Fragment:一开始是隐藏的,按空格键或方向键后显示,实现动态效果。Skip:在幻灯片中不显示的单元。Notes:作为演讲者的备忘笔记,也不在幻灯片中显示。Jupyter Notebook 幻灯片设置当编写好了幻灯片形式的 notebook,如何来演示呢?这时需要使用 nbconvert:jupyter nbconvert notebook.ipynb --to slides --post serve在命令行中敲入上述代码后,浏览器会自动打开相应的幻灯片。魔术关键字魔术关键字(magic keywords),正如其名,是用于控制 notebook 的特殊的命令。它们运行在代码单元中,以 % 或者 %% 开头,前者控制一行,后者控制整个单元。比如,要得到代码运行的时间,则可以使用 %timeit;如果要在文档中显示 matplotlib 包生成的图形,则使用 % matplotlib inline;如果要做代码调试,则使用 %pdb。但注意这些命令大多是在Python kernel 中适用的,其他 kernel 大多不适用。有许许多多的魔术关键字可以使用,更详细的清单请参考 Built-in magic commands 。相关资源汇总本文给出了许多扩展链接供参考,这里汇总如下,供您参考:Jupyter Notebook 官网文学编程 Literate programmingIPython 官网LaTeX官网LaTeX 语法:A Primer on Using LaTeX in Jupyter Notebooks 魔术关键字:Built-in magic commands
分享给朋友:
您可能感兴趣的文章:
随机阅读:}

我要回帖

更多关于 jupyter notebook 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信