目录

1. 键盘快捷键

2. 在notebooks中绘图

3. IPython魔法命令(Magic Commands)

4. 抑制最后一行的输出

5. 执行Shell命令

6. 用其它的语言写函数

7. 在指定文件夹使用jupyter notebook

8. 插入公式

9. 模块重载

10. 把几个notebooks合并

11. 想看你代码跑了多久?

12. 查询

13. 提升jupyter"逼格"

14 如何恢复缺省的Jupyter Notebook主题?


1. 键盘快捷键

熟练使用键盘快捷键的话,能够让你节省大量时间。Jupyter在菜单"Help > Keyboard Shortcuts"中存放了一个快捷键列表,如下图所示(只显示了头上一部分):

也可以通过"Help > Edit Keyboard Shortcuts"去编辑自己想要的快捷键。当然一般来说不必如此,除非你是一个super advanced user。

2. 在notebooks中绘图

有很多种方法可以用于在Jupyter Notebooks中绘图,但是matplotlib可以说是事实上的标准(the de-facto standard),有两种魔法命令用于辅助绘图功能:

  • %matplotlib inline:使用这条魔法命令后,不需要显示地调用pyplot.show()即可自动显示图片
  • %matplotlib notebook:提供交互式的绘图功能。这个可能会稍微慢一些,因为需要更多的事件进行图片渲染(rendering)。使用交互模式时,所画出的图像带有比如说放大、缩小、存储等命令按钮,如下所示:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebookx = np.linspace(0,1,100)
y = np.sin(2*np.pi*x)
plt.plot(y)

3. IPython魔法命令(Magic Commands)

由于Jupyter Notebook是基于IPython的,所以也自然继承了IPython的所有魔法命令。魔法命令以"%"打头。以上所说的%matplotlib inline和%matplotlib notebook可以说是最常用的魔法命令了。

其它还有什么可用的魔法命令呢,可以在Jupyter Notebook code cell中输入以下魔法命令就能得到一个可用魔法命令列表:

%lsmagic

关于这些魔法命令的详细用法可以参考IPython文档。

4. 抑制最后一行的输出

在Jupyter Notebook的code cell,最后一条语句的输出缺省地会被打印出来,不需要使用显式的打印语句。但是,有些情况下并不希望它打印出来,比如说画图的时候,这时候应该怎么办呢?

很简单,在这条语句的最后加一个分号结尾就可以(python代码正常情况下行尾是不需要分号的)

%matplotlib inline
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 1, 1000)**1.5
plt.hist(x)

这样将得到如下输出。但是如果在plt.hist(x)后面加上分号结尾的话,就不会显示图上面的那一部分数值输出打印了。

5. 执行Shell命令

有点类似于魔法命令,但是是以”!“打头。

以下例子在notebook中执行"ls"命令列举当前目录中的内容。

!ls -al

其结果与在命令行窗口输入"ls -al"得到的结果相同。

Unsurprisingly, 你也可以在Notebook中用"!pip install ...."直接执行包的安装!

6. 用其它的语言写函数

这通常发生在你有一些构成你的运行性能瓶颈的运算密集型处理函数,用numpy仍然你不够快,需要嵌入比如说C或Fortran写的函数进行特别加速。以下以C函数为例。

首先你需要安装cython:

!pip install cython

然后加载:

%load_ext Cython

定义一个函数并通过cell magic命令"%%cython"指定这个cell中的代码是按照C语法进行编译。

%%cython
def myltiply_by_2(float x):return 2.0 * x

然后就可以像正常的python函数一样进行调用了。

myltiply_by_2(23.)

以上调用会输出:46

7. 在指定文件夹使用jupyter notebook

在缺省情况下,从Windows的任务菜单栏启动Jupyter Notebook后缺省的工作目录是系统中用户目录,比如说C:\Users\user,启动后所有的工作都在这个缺省的工作目录下进行,而且“更绝”的是无法从Jupyter Notebook中移动到别的目录中去(像浏览器浏览目录一样),只能在以启动目录为根目录的目录路径范围内行动--老实讲,感觉这个也太low了,这么蠢的事情跟这么牛逼的工具不相配啊。

很多人喜欢去修改configure文件去修改缺省的工作目录指向。但是我不喜欢这个idea。除非你所有的Jupyter Notebook都集中地放到同一个地方?这样似乎矫枉过正了。

最笨的办法可能就是最聪明的办法。我喜欢的最笨的办法就是:

(1) 从Anaconda Prompt中切换到你的工作目录

(2) 在Anaconda Prompt命令行执行jupyter notebook

8. 插入公式

公式可以在MarkDown cell中插入Latex公式。分为两种情况:

(1) 行内公式,首尾各用一个”$“界定公式。即,$Latex数学公式$

(2) 独立成行的公式,首尾各用一对”$$“界定公式。即,$$Latex数学公式$$

在JupyterNotebook中是用MathJax来渲染生成用Latex语法描述的公式.

9. 模块重载

有些时候我们在Jupyter Notebook中会import之前写好的模块,但是在Jupyter中的调试过程中发现这些模块需要修改优化。缺省情况下,Jupyter Notebook不会自动地重新加载在外部修改过的模块,那难道只能在每次修改了需要导入(import)的外部模块时重启Jupyter Notebook,当然不!

在Jupyter Notebook第一个cell中追加并运行以下代码,在notebook外改模块代码就会被notebook自动重新加载。

%load_ext autoreload
%autoreload 2

10. 把几个notebooks合并

说起来惭愧,之前都是手动从其它notebook里copy过来,过于手工浪费时间,安装个nbmerge就可以merge notebook了,如下所示:

!pip install nbmerge
!nbmerge file_1.ipynb file_2.ipynb file_3.ipynb > merged.ipynb

11. 想看你代码跑了多久?

不用导入time模块,只要像下面加行代码即可:

一行代码:
%time my_list = [x for x in all_items]
多行代码::
%%time
my_list = [x for x in all_items]
with open('a.txt') as f:'''do something'''

12. 查询

在code cell中用 ? 后跟函数名、变量名。。。然后运行该单元,会返回关于该函数或者该变量的相关信息。比如说查询一个变量的信息:

x = np.linspace(0,1,100)
y = np.sin(2*np.pi*x)
?y

运行以上cell会在窗口下面出现一个信息窗口显示以下信息:

或者,查询一个函数的帮助信息:

?np.sin

13. 提升jupyter"逼格"

看腻了Jupyter Notebook缺省的长相,想换个口味?没问题!

首先你需要安装jupyterthemes:conda/pip install jupyterthemes

在Notebook code cell中运行以下代码会得到所有的Jupyter Themes列表:

!jt -l

用以下命令指定themes。。。。 这里以chesterish为例。

!jt -t chesterish

运行完后,右键下拉菜单中选择“刷新”进行一下刷新,然后,画风果然变了:

当然,你并不一定必须在Jupyter Notebook中执行以上命令。在CMD或Anaconda Prompt窗口执行“jt -l”,"jt -t"等是一样的效果。

14 如何恢复缺省的Jupyter Notebook主题?

按照上一节的操作我更换了Jupyter Notebook,一开始觉得很炫,然后我发现有点不习惯了。。。觉得好像少了点什么。仔细看看发现确实少了点东西。如下图是我执行'jt -t grade3'后得到的:

以下是缺省的主题条件下的样子:

更新主题后工具条(toolbar)没了。。。嗯,对于还不擅长使用键盘打遍天下的菜鸟如我还是觉得有工具条用起来方便些。那怎么恢复缺省的主题呢?也很简单,在命令行窗口执行命令“jt -r”即可(运行完后再刷新以下notebook页面即可):

这样就可以放心地来去自如啦

Reference:

[1] 28 Jupyter Notebook Tips, Tricks, and Shortcuts for Data Science (dataquest.io)

[2] GitHub - dunovank/jupyter-themes: Custom Jupyter Notebook Themes

[3] python - How to reset jupyter notebook theme to default? - Stack Overflow

值得你拥有的Jupyter Notebook使用技巧集锦(更新至14条)相关推荐

  1. 1个不为人知的 Jupyter notebook 使用技巧,今天分享出来。

    Jupyter Notebook 是一个友好的 Python 编辑器,更是一款集编程和写作于一体的效率工具!最近有个小伙伴看到我的 Jupyter Notebook截图,就问为啥你没写变量名就输出结果 ...

  2. 超好用,18 个 Jupyter Notebook 使用技巧助你快速腾飞

    Jupyter Notebook 是干嘛的就不再过多介绍了,这篇文章收集了一些顶级的 Jupyter Notebook 技巧,可以让你迅速成为一个 Jupyter 超级使用者! 作为一款完全免费的产品 ...

  3. 18 个 Jupyter Notebook 小技巧,帮助你快速腾飞

    Jupyter Notebook 是干嘛的就不再过多介绍了,这篇文章收集了一些顶级的 Jupyter Notebook 技巧,可以让你迅速成为一个 Jupyter 超级使用者! 作为一款完全免费的产品 ...

  4. Jupyter Notebook使用技巧:换皮肤

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ Jupyter Notebook一直都是做数据分析的最佳利器.之前写过一篇关于jupyter notebook的详细入门 ...

  5. jupyter notebook使用技巧

    目录 1. 打开jupyter notebook 2. jupyter notebook跑不动? 2. jupyter操作快捷键 1. 打开jupyter notebook 在项目文件夹路径处输入'c ...

  6. Jupyter notebook 使用过程中的一些小技巧总结

    Jupyter notebook 小技巧 这是自己使用Jupyter notebook 的过程,遇到的一些问题,还有一些使用的小技巧,希望可以帮且大家.会不定时更新 code 转 markdown: ...

  7. Jupyter Notebook幻灯片使用技巧

    目录 前言 一.将Jupyter单元格分为两列 二.Jupyter幻灯片隐藏代码 三.转换幻灯片为可写的黑板 总结 参考文献 前言 Jupyter Notebook的扩展插件RISE可以使我们的Jup ...

  8. 如何实现更换Jupyter Notebook内核Python版本

    如何实现更换Jupyter Notebook内核Python版本 更新时间:2020年05月18日 09:53:29   作者:象在舞 这篇文章主要介绍了如何实现更换Jupyter Notebook内 ...

  9. 使用Jupyter Notebook

    最快使用指南:超快上手Jupyter Notebook 目录 * 简介 * 安装与运行 * 主面板(Notebook Dashboard) * 编辑界面(Notebook Editor) * 单元(C ...

最新文章

  1. 528. 按权重随机选择
  2. iOS NSString中实用的方法
  3. 观察者模式 Observer 发布订阅模式 源 监听 行为型 设计模式(二十三)
  4. vue中如何画饼状图
  5. 主机大师linux,113资讯网(www.113p.cn)评测:护卫神·主机大师 (Linux版)
  6. 首款鸿蒙系统终端n,首款搭载华为鸿蒙系统终端来了!荣耀智慧屏正式发布,3799元起售...
  7. Linux Shell 简介
  8. java与sql2005连接数据库_Java链接数据库SQl Server2005
  9. smbd的安装与使用
  10. mysql b tree索引原理_MySQL中B+Tree索引原理
  11. 小度智能音箱维修点_小度智能音箱——联通智慧生活语音服务入口
  12. Github上的优秀安卓项目
  13. http://www.eoeandroid.com
  14. 恩智浦智能车摄像头循迹部分
  15. 【计算理论】图灵机 ( 图灵机设计 )
  16. 乐乐音乐-KSC歌词图片生成器
  17. android 短信类型,短信分类软件(短信夹)下载-短信分类(短信夹)安卓版下载 - Iefans...
  18. JS逆向hook通用脚本合集
  19. html5 input与textarea标签及其属性
  20. 大数据建设意义_大数据技术平台建设方案(ppt)

热门文章

  1. 中国(温州)数安港“2022数据智能夏令营”圆满收官!
  2. “猫拼狗”瓜分618,谁在玩套路?
  3. 15-5 电子词典
  4. mysql 查询 表别名_MySQL-复杂查询及条件-起别名-多表查询-04
  5. tf.Variable() 和 tf.get_variable(),tf.name_scope() 和 tf.variable_scope()
  6. 手写的汉字评分matlab,基于深度学习的手写汉字美感评分
  7. 计算机网络第二章习题
  8. 主流开源流媒体服务器有哪些?
  9. 数字图像处理之位图在计算机中的存储结构
  10. 【HAN】代码逐句理解三