全文共6242个字符,15分钟以上图片来源:peter_pyw/Pixbay

科学技术真正酷的地方是能让生活更有趣。(约翰f肯尼迪,《科学》)每天、每一分钟、每一秒钟,都有人在工具设计上倾注心血和汗水,使程序、软件包和应用程序运行更加顺畅和方便。

在这种情况下,有人认为下载Jupyter笔记本电脑开始就足够了,如果笔记本电脑能正常工作,就完成了!但是事实上,有无限的方法可以定制个人的笔记本电脑。安装程序或软件包只是开始!

为什么不在几分钟内做一些改善呢?有很多简单快捷的方法可以让Jupyter笔记本电脑运行得更快、更快、更强、更酷、更有趣。

首要事项

安装所有程序后,每当您尝试启动Jupyter笔记本电脑时,都可以启动终端。

Jupyter notebook

然后可以运行程序。

更换笔记本电脑主题

使用Jupyter笔记本电脑时,用户总是想先更换笔记本电脑主题。人们总是对黑暗系着迷!这很容易,主题可以随时转换。

首先打开用户终端并安装Jupyter主题。

Pip install jupyterthemes

现在,您可以通过JT -t chesterish安装流行的深色主题。

Jt -t chesterish

可以恢复以下默认主题:

Jt -r

GitHub的Jupyter主题的repo代码门户:

基本命令

可以使用命令面板快速访问键盘快捷键。只需输入Ctrl Shift P或Cmd Shift P,即可在Mac上访问与Spotlight搜索非常相似的对话框。如果不知道键盘快捷键是什么,它可以帮助用户以名称执行所有命令。

组合键Shift Enter执行当前单元格

按Esc键进入命令模式。现在可以使用箭头键导航笔记本电脑了!

命令模式,使用

按a键在当前单元格上方插入新单元格

按b键在当前单元格下插入新单元格

按m键将当前单元格更改为Markdown

按y键返回到代码单元格

按D d键删除当前单元格(按两次键)

按Enter键从命令模式返回到编辑模式

另外,

Shift Tab键组合显示刚输入代码单元格的对象的文档。您可以使用此组合键在不同的模式之间循环。)。

Esc F组合键可以在代码(而不是输出)中查找和替换信息。

Esc 0组合键切换单元格输出。

使用Shift J或Shift Down组合键向下选择下一个单元格。选择Shift K或Shift Up上方的下一个单元格。选取储存格后,您可以批次删除/复制/剪下/贴上/执行。需要移动笔记本电脑的一部分的时候真的很好!

Shift m可以合并多个单元格。(如果只想单击要操作的单元格,可能会出现问题。按住Shift键并单击要合并的单元格。然后按住shift键并按m键。)。

另外,如果在开头加上感叹号,笔记本电脑就可以发出bash命令。例如:Pip install numpy

通过在末尾添加分号,可以随时抑制最后一行函数的输出。

注释和未注释的代码块

如果要在工作时添加新代码行并注释掉旧代码行,最好提高或调试代码性能。

首先,选择要注释的所有行。

然后点击cmd注释突出显示的代码!

pgc-image/645c0697ab9b4b1dbbfca889deea9964?from=article.detail&_iz=31825&index=4" width="640" height="129"/>

LaTex

可以随时在Markdown单元格中编写LaTex,它将作为公式呈现。

这将

$P(A \mid B) = \frac{P(B \mid A)P(A)}{P(B)}$

变成了

打印所有单元格输出

通常只打印单元格中的最后一个输出。对于其他所有内容,都必须手动添加print(),这很有效,但不是很方便,可以通过在笔记本顶部添加这个来更改:

从IPy导入InteractiveShell
In = all

这意味着,虽然通常只打印一个输出

现在将看到两个输出。

任何时候想回到初始设置,只需运行

从IPy导入InteractiveShell
In = last_expr

只需注意,必须在单独的单元格中更改设置,才能使其在下一次单元格运行时生效。

扩展

因为它是一个开源的Web应用程序,所以为Jupyter笔记本开发了大量的扩展项。

ipython扩展列表传送门:

可以随时在命令行中安装Nbextensions,就像这样:

用pip

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install –user

或者用 Anaconda

conda install -c conda-forge jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_nbextensions_configurator
jupyter contrib nbextension install –user

安装完成后,将看到Nbextensions选项卡。开始探索吧!

传送门:关于扩展项的更多信息,例如如何启用、禁用扩展项等等

这里不会讲太多关于添加、启用扩展项或者如何使用它们的细节,因为这些在Jupyter 笔记本中都解释的非常详细。只需点击屏幕上的 Nbextensions ,点击感兴趣的扩展程序,然后向下滚动查看所需信息以及运行中的扩展程序的GIF动图。

热门扩展

· Scratchpad——这很酷炫。它可以创建临时单元格以进行快速计算,而无需在工作簿中创建新的单元格。这能节省大量时间!

· Hinterland——这使得代码单元中的每个按键都可以启用代码自动完成菜单,而不仅仅是选项卡。

· Snippets——添加下拉菜单,将代码段单元格插入当前笔记本。

· Autopep8——是将python代码自动编排以符合PEP 8编程风格的工具。操作方便!确保在本地计算机上运行pip installautopep8 –user。这将确保遵循正确的python编码规范。

· Split Cells Notebook——用以在Jupyter笔记本中拆分单元格。进入命令模式(Esc),用于Shift + s将当前单元格切换为拆分单元格或全宽度。

· Table of Contents——扩展可以收集所有正在运行的标题,并将它们显示在浮动窗口中,作为侧边栏或导航菜单。

· A Code Prettifier——清理、格式化和缩进你的代码,无需人工操作。

· Notify——当内核空闲时,会显示桌面通知。当运行代码需要花费一些时间才能完成时,这就非常方便。

· Code Folding——在编辑模式下,边缘会出现一个三角形,用于折叠代码。想要隐藏细节以提高可读性时,这一功能很有用。

· Zen mode——使界面更加整洁。确保在设置中关闭背景。

魔法命令

Magics是一些方便的命令,可以使执行特定任务变得轻松。它们通常看起来像unix命令,但是都是通过Python实现的。

更多魔法命令传送门:

魔法命令分为两种: 行魔术命令(在行上使用)和单元格魔术命令(适用于整个单元格)。行魔术以一个百分号字符%开始,单元格魔术以两个%%开始。要查看可用的魔法,请运行:

%lsmagic

设置环境

通过%env,不需要重启其他设置,也能够轻松管理笔记本的环境变量。如果在没有任何变量的情况下运行程序,笔记本中将会列出所有相关的环境变量。

插入代码

:%load用于插入一段外部代码。(详情请看下文,但是由于这一点非常重要,所以在此提出)例如:

%loadba

将获取ba文件并将其加载到笔记本中。

导出单元内容

这非常有用。%%writefile用于随时导出单元中的内容。例如:

%%writefile
在此写下一些你想要输出代码或函数,以后也许会用到!

你是否发现自己一直在所有笔记本中运行相同的输入值或者加载相同的函数?现在有一个一劳永逸的办法!建立一个文件夹ba,里面包括以下代码:

%writefile ba
import pandas as pd
import numpy as np
import Ma as plt

这将创建一个.py文件夹,其中包含基本的输入值。

要想随时运行这些函数,只需写下:

%load ba

执行此操作将用加载的文件替换单元内容。

# %load im
import pandas as pd
import numpy as np
import ma as plt

现在可以再次运行单元,导入所有模块,做好准备。

存储和重新使用代码:%macro魔法命令

大多数人都可能会反复地写着几个一样的任务,重复计算一些方程式,无数次产出同样的代码行。Jupyter可以将代码段保存为执行宏。执行宏只是代码,因此它们可以包含变量,这些变量必须在执行之前定义。现在来定义一个吧!

比如说

name = 'Kitten'

现在,定义一个宏需要使用一些代码。从字符串到函数,或者所需要的任何东西,这几乎可以保存任何东西。

print(‘Hello, %s!' % name)
Hello, Kitten!

%macro和%load魔法命令用于设置一个可重复使用的宏。通常在宏名称的开头加上双下划线,用以区别于其他变量。

%macro -q__hello_you 32

%macro魔法命令设置一个名称和一个单元编号(或编号),-q使其不那么冗长。%store可以保存任何其他板块的变量。在这里上传以创建的宏的名称,以便在内核关闭后或在其它笔记本中再次使用。

要加载宏,只需运行:

%load __hello_you

要运行宏,只需运行一个包含宏名的单元:

__hello_you
Hello, Kitten!

完成!

修改宏中所使用的变量。

name= 'Muffins'

运行宏时,修改过后的值就会被执行。

__hello_you
Hello,Muffins!

这是因为宏在单元范围内执行已保存的代码。如果未定义名称,则会出现错误。

想要在整个笔记本中都使用同一个宏吗?

存储魔法命令

%store 可以存储宏,并且在整个jupyter笔记本中运行被存储的宏。

现在,打开一个新的笔记本,尝试输入%store -r__hello_you吧。加载那项代码,就可以感受新世界了!

%store-r __hello_you
name = 'Rambo'
%load __hello_you
Hello,Rambo!

运行魔法命令

%run魔法命令将执行代码,并显示结果,包括matplotlib图。甚至整个笔记本都可以采用这种方式来运行。

%run可以执行.py文件中的python代码,还可以运行其他Jupyter笔记本。

Pycat 魔法命令

在不确定脚本内容的情况下,%pycat可用于显示脚本内容。

%pycatba

自动保存

%autosave魔法命令可以更改笔记本自动保存到检查点文件的频率。

%autosave 60

该代码设置每60秒就自动保存一次。

显示图像

%matplotlib inline

你可能已经知道这一条了。%matplotlib inline将在单元输出结果中显示Matplotlib绘图图像,这意味着笔记本中可以包含Matplotlib图表和图形。在笔记本的开头运行这个程序是有意义的。

计时

Ipython有两种魔术命令可用于计时,分别是%%time和%timeit。当代码运行得很慢,用户试图找出问题所在时,这些命令就变得非常重要。这两种命令都有行和单元模式。

%timeit和%time之间主要的不同之处在于%timeit多次运行特定代码,并算出平均值。

%%time则在单元中呈现出代码单次运行的结果。

%%timeit使用Python timeit模式,这种模式可以多次运行一个代码,并且就结果取平均值。-n选项用于设置运行次数,-r选项用于设定重复次数等等。

在不同的操作系统运行代码

也可以使用指定的语言。系统中有多种语言扩展,例如:

· %%bash

· %%HTML

· %%python

· %%python2

· %%python3

· %%ruby

· %%perl

· %%capture

· %%javascript

· %%js

· %%latex

· %%markdown

· %%pypy

为了在笔记本中呈现HTML,需要运行:

%%HTML
This is <em>really</em> neat!

也可以随时直接使用LaTeX,通过:

%%latex
这是一个方程式:$E =mc^2$

LaTeX传送门:

Who魔法命令

毫无争议,%who命令可以列出全球范围内所有的变量,而传递str这样的参数将只列出该类型的变量。所以如果在笔记本中输入%who str这样的代码,将会得到

Prun魔法命令

%prun 将展示程序在每个函数上所花费的时间。使用%prun statement_name可以得到一个有序的表,该表记录了在语句中调用每个内部函数的次数、每次调用所用的时间以及函数累计运行时间。

python调试器魔法命令

Jupyter拥有自己的Python调试器接口。这使得我们可以查看函数内部工作。可以通过在单元顶部运行%pdb来打开它。

传送门:

高分辨率绘图

用视网膜屏时,一IPython magic的一个简单行将输出双分辨率绘图。请注意,这不会在非视网膜屏幕上呈现。

%config InlineBackend.figure_format ='retina'

在运行时跳过一个单元

只需在单元顶部添加%%script false

%%script false
你将在这里输入一些暂时不需要运行的长代码。

提醒

实际上,这是一个python窍门,在运行一个耗时超长的代码时,可以使用这一窍门。如果不想一整天都盯着代码的话,就需要知道代码什么时候运行完毕。可以在代码运行完毕时,设置一个闹铃。

在linux(和mac)系统上

import os
duration = 1 # second
freq = 440 # Hz
os.system('play –no-show-progress –null–channels 1 synth %s sine %f' % (duration, freq))

在windows系统上

import winsound
duration = 1000 # millisecond
freq = 440 # Hz
win(freq, duration)

为了使用这些,需要安装sox,一起使用。

现在开始动手吧!

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

相关推荐