前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >高效jupyter notebook

高效jupyter notebook

原创
作者头像
王磊-字节跳动
修改于 2019-06-28 06:13:02
修改于 2019-06-28 06:13:02
2.2K0
举报
文章被收录于专栏:01ZOO01ZOO

本文基于并使用jupyter lab 0.35.6

1. 了解编辑模式和命令模式

类似vim,notebook也有命令模式和编辑模式。在编辑模式中按下esc就会进入命令模式,点击任何一个cell,或者按下enter可以进入编辑模式。如果你用过vim,就应该不难想象这两个模式的作用:在不同的模式下,编辑器提供的很多好用的快捷键,方便你进行方便快捷的操作。

如果你习惯了某种编辑器,你可以将快捷键映射成和vim, emacs, 或是sublime风格。

无须记住所有快捷键,但是有一些相信会对比帮助很大:比如

代码语言:txt
AI代码解释
复制
- 在命令模型下按下"y" 或者 "m", 可以让cell在code和markdown之间切换。
- 在命令模式下按下"dd", 可以删除cell。
- 按下 "shirft+enter", 运行本cell并选中下一个cell,而"Alt-Enter", 在运行本cell时,在下方插入一个新cell。
- 命令模式下,"shirft+m", 合并本cell和下一个cell。
- 命令模式下:"c", "x", "v" 分别表示复制,剪切,粘贴cell。

下面列出了更多快捷键

命令模式快捷键(按 Esc 键开启):

快捷键

作用

说明

Enter

转入编辑模式

Shift-Enter

运行本单元,选中下个单元

新单元默认为命令模式

Ctrl-Enter

运行本单元

Alt-Enter

运行本单元,在其下插入新单元

新单元默认为编辑模式

Y

单元转入代码状态

M

单元转入 markdown 状态

R

单元转入 raw 状态

1

设定 1 级标题

仅在 markdown 状态下时建议使用标题相关快捷键,如果单元处于其他状态,则会强制切换到 markdown 状态

2

设定 2 级标题

3

设定 3 级标题

4

设定 4 级标题

5

设定 5 级标题

6

设定 6 级标题

Up

选中上方单元

K

选中上方单元

Down

选中下方单元

J

选中下方单元

Shift-K

连续选择上方单元

Shift-J

连续选择下方单元

A

在上方插入新单元

B

在下方插入新单元

X

剪切选中的单元

C

复制选中的单元

Shift-V

粘贴到上方单元

V

粘贴到下方单元

Z

恢复删除的最后一个单元

D,D

删除选中的单元

连续按两个 D 键

Shift-M

合并选中的单元

Ctrl-S

保存当前 NoteBook

S

保存当前 NoteBook

L

开关行号

编辑框的行号是可以开启和关闭的

O

转换输出

Shift-O

转换输出滚动

Esc

关闭页面

Q

关闭页面

H

显示快捷键帮助

I,I

中断 NoteBook 内核

0,0

重启 NoteBook 内核

Shift

忽略

Shift-Space

向上滚动

Space

向下滚动

编辑模式快捷键( 按 Enter 键启动):

快捷键

作用

说明

Tab

代码补全或缩进

Shift-Tab

提示

输出帮助信息,部分函数、类、方法等会显示其定义原型,如果在其后加 ? 再运行会显示更加详细的帮助

Ctrl-]

缩进

向右缩进

Ctrl-[

解除缩进

向左缩进

Ctrl-A

全选

Ctrl-Z

撤销

Ctrl-Shift-Z

重做

Ctrl-Y

重做

Ctrl-Home

跳到单元开头

Ctrl-Up

跳到单元开头

Ctrl-End

跳到单元末尾

Ctrl-Down

跳到单元末尾

Ctrl-Left

跳到左边一个字首

Ctrl-Right

跳到右边一个字首

Ctrl-Backspace

删除前面一个字

Ctrl-Delete

删除后面一个字

Esc

切换到命令模式

Ctrl-M

切换到命令模式

Shift-Enter

运行本单元,选中下一单元

新单元默认为命令模式

Ctrl-Enter

运行本单元

Alt-Enter

运行本单元,在下面插入一单元

新单元默认为编辑模式

Ctrl-Shift--

分割单元

按光标所在行进行分割

Ctrl-Shift-Subtract

分割单元

Ctrl-S

保存当前 NoteBook

Shift

忽略

Up

光标上移或转入上一单元

Down

光标下移或转入下一单元

Ctrl-/

注释整行/撤销注释

仅代码状态有效

2. 了解ipython的magic

在code中输出%开头的命令,成为magic。magic很有用,下面是一些常用的Magic:

magic

作用

%lsmagic

查看支持的magic

%time, %timeit and %%time

计时,%%time表示cell级别的计时

%matplotlib

保证 Jupyter Notebooks 展示图表

%load_ext

加载插件,比如%load_ext autoreload 是最常用的命令之一,加载自动更新引用module的插件

%system

使用shell. 使用!也可以完成这个功能

%who_ls

%who_ls 输出环境中的变量

%run

可以从.py文件执行Python代码. 也可以执行其他的Jupyter notebook。

%writefile %pycat

%writefile魔法保存cell的内容到一个外部文件。%pycat则刚好相反,并且会向你展示高亮后的外部文件。

%pdb %debug

%pdb 打开pdb调试代码, %debug能异常时自动打开pdb

运行其他语言代码

%%bash %%HTML %%python2 %%python3 %%ruby %%perl

更多magic可以用%lsmagic查看,或者查阅ipython文档

通常在notebook的第一个cell就设置常用的magic

比如最常用的几个:

代码语言:txt
AI代码解释
复制
%matplotlib inline
%reload_ext autoreload
%autoreload 2

下面是几个magic的例子:

代码语言:txt
AI代码解释
复制
%%time
for i in range(4000): a = i**i
%time for i in range(2000): a = i**i
代码语言:txt
AI代码解释
复制
CPU times: user 80 ms, sys: 0 ns, total: 80 ms
代码语言:txt
AI代码解释
复制
Wall time: 83.4 ms
代码语言:txt
AI代码解释
复制
CPU times: user 616 ms, sys: 0 ns, total: 616 ms
代码语言:txt
AI代码解释
复制
Wall time: 651 ms
代码语言:txt
AI代码解释
复制
from numpy.random import randint
import matplotlib.pyplot as plt

# Sample 1000 random values to create a scatterplot
x = randint(low=1, high=1000, size=100)
y = randint(low=1, high=1000, size=100)

%matplotlib inline
plt.scatter(x, y)
plt.show()
image
image
代码语言:txt
AI代码解释
复制
%%HTML
This is <em>really</em> neat!

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

代码语言:txt
AI代码解释
复制
%%latex
Some important equations:$E = mc^2$
$e^{i pi} = -1$

Some important equations:$E = mc^2$

$e^{i pi} = -1$

3. 了解ipython help和文档

代码补全

当你输入一个函数,按下tab时,你会发现,所有相关的函数都会列出来,如果只有一个,它会自动补全。

image
image

寻找文档或者源代码

在函数或者模块后输入? 或者 ?? 分别可以输出详细的python文档和源代码。(在jupyter中文档是以下方弹出框或者链接的方式展示,而jupyter lab目前还是以直接输出的形式显示,这一点未来可能会变化)

4. 了解常用的kernel和插件

社区通过kernel的方式支持除了python之外的更多语言。

jupyter的支持多种扩展方式,社区提供了许多很好的插件,下面列出了一些常用的优秀插件。更多插件推荐

插件

说明

LaTeX

支持编辑 LaTeX 文档.

DrawIO

支持在你的JupyterLab创建和编辑 drawio图表 .

Table of Contents

为你的 markdown 文档生成toc.

Go to definition

支持 Alt + click 跳转

Code Formatter

Easily beautifies Python code inside JupyterLab using one of the formatters: Black/YAPF/AutoPEP8.

Git

Git extension

GitHub

GitHub extension

ipywidgets

Interactive widgets for the Jupyter Notebook

目前(本文的编辑时间20190623)的jupyter lab版本处于0.35.6,而最新的未release版本为1.0,新旧版本改动较大,插件不兼容,所以安装的时候需要关注插件是否支持你的jupyter版本(比如某些插件还未提供1.0版本的支持,所以目前还是使用jupyter lab比较可靠)。

5. 用容器运行jupyter lab

使用容器一键启动jupyter环境,使用dockerfile定制运行环境,保存你的notebook到对象存储或者网盘上,这样你就可以在任何时候任何地方快速启动你的jupyter lab了。

以下是我运行jupyter lab的方式:

  1. 挂载我的腾讯云对象存储cos数据到本地(你也可以用google driver之类的插件对接google driver,目前还没有cos插件)
  2. 运行jupyter镜像,这个镜像ccr.ccs.tencentyun.com/leiwang/jupterlab:latest 使用python3.6制作,安装了上文中提到的所有插件,并安装的一些常用的python包。你可以查看Dockerfile
代码语言:txt
AI代码解释
复制
cosfs data-1251825869 /data/cos -ourl=http://cos.ap-shanghai.myqcloud.com -odbglevel=info
docker run -d  --mount type=bind,bind-propagation=shared,source=/data,target=/opt/app/data  --net=host ccr.ccs.tencentyun.com/leiwang/jupterlab:latest  jupyter lab --ip=xxx  --no-browser --notebook-dir=/opt/app/data --allow-root

配置完成之后的效果图

image
image
image
image

推荐在腾讯云的钛机器学习平台tione上直接打开运行jupyter lab,省略复杂的配置步骤。

代码语言:txt
复制

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
干货 | 掌握这些模块电路,轻松看懂电子电路图
好了,看完以上这些电路图,大家能够看得明白,每一个电路图,到底是怎样运行的吗?如果你能够看懂,那恭喜你,你已经入门电子设计了,如果你还没看懂,请你不要失去信心,接下来,我们开始学习,基础模块电路。
AI 电堂
2021/02/07
1K0
人体检测–热释电传感器开发
大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。 Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
全栈程序员站长
2022/09/28
5910
人体检测–热释电传感器开发
信号放大器——传感器(三)
放大电路是一种应用极为广泛的电子电路,其实质是能量的控制与转换,在电视、广播、通信、测量仪表以及其他各种电子设备中具有广泛的应用,能够将微弱的电信号(电压、电流、功率)进行放大,以满足人们的实际需求。近来,购买相关的元器件,对本科模拟电路相关的知识点进行回顾,加深相关内容的理解,主要包含两部分内容:1、仪表放大器AD620简介;2、固定偏置共射放大电路放大电路基本原理,具体内容如下:
联远智维
2022/01/20
9800
信号放大器——传感器(三)
全国产传感器工作原理以及传感器种类详解
随着物联网时代的到来,现代信息技术快速发展,其中包含了计算机技术、通信技术和传感器技术等,计算机相当于人类的大脑,通信技术类似人体的神经,而传感器就等同于人的感觉器官。从广义上说,传感器就是一种能够感知外界信息,并将这些信息按照一定的规律转换成可用的电信号或其他形式的输出信号的装置,达到对信息的传输、存储、记录和控制等目的。
武汉利又德科技
2024/06/12
1440
设计低泄漏飞安电路,第 2 部分:组件选择
第1部分定义并描述了承载这些低电流的设计,解释了设计这些电路时出现的问题,并研究了屏蔽和防护方法的应用。在第 2 部分中,将研究元件选择如何影响低泄漏电路的性能,并讨论噪声如何渗透到低泄漏设计中。
云深无际
2024/08/20
2091
设计低泄漏飞安电路,第 2 部分:组件选择
ESP32开源示波器.硬件设计
ADC 输入和完整的输入调节电路。ADC 针对双极测量进行配置,此测量中的最终转换结果是正负 ADC 输入电压之间的差分电压。
云深无际
2024/08/20
3510
ESP32开源示波器.硬件设计
AD8232单导联心电模块
谢邀,脑电一个芯片都买不起AD12XX的几百一块,一个AD7232才20快,我就在想,EEG和ECG有什么不同,是不是可以使用便宜的芯片测量?
云深无际
2023/03/24
1K0
AD8232单导联心电模块
ADuCM355+LTC6078 电化学测量系统
今天这个东西呢,也是ADI的U的二次封装的产品,但是做了一些有趣的设计,所以来分析,以及我也要设计类似的东西。
云深无际
2024/08/20
3090
ADuCM355+LTC6078 电化学测量系统
【运放】LM358和LM324
适用于电压范围很宽的单电源,而且也适用于双电源工作模式。 ​​​​​单电源和双电源 在这里我就简单来说下单电源和双电源它们的区别:对地(GND)区别,双电源运放的输出电压范围可以跨越零电位达到正负电压的输出。然而,单电源运放则不行。如果你这段话一遍理解不了就多看几遍(o゚v゚)ノ 拓展知识点☯
謓泽
2024/03/24
1.1K0
【运放】LM358和LM324
红外传感器型号和参数_红外传感器参数
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141768.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/01
1.2K0
医用眼科前房高精度侵入式压力传感器.电路设计上
之前写过这个东西,后面又断断续续的写了其他的一些东西,这篇文章是尽量的给出一个详细的电路设计。但是后面又看到不少好玩的东西我就都写进去了,所以文章和以往一样没有那么纯粹,而且一些具体的参数性调节的计算可能不会写很多,不过之后都会补上的。
云深无际
2024/08/20
1190
医用眼科前房高精度侵入式压力传感器.电路设计上
[物联网] 3.5 反馈给显示世界
使用输出设备时的重要事项 前面大家已经学习了如何在设备开发中利用传感器。物联网设备的使命就是把通过传感器采集到的信息跟云端的系统挂钩并处理这些信息,基于处理结果把用户和环境引向最佳的状态。在这一连串的反馈中,负责“把用户和环境引向最佳的状态”的正是“输出设备”。 在设备开发中,一个非常重要的设计观点就是要高效利用输出设备。以智能手机为例,大家会发现光一台智能手机就配备了扬声器、显示屏、振动装置、 LED 等各种各样的输出设备。 灵活应用输出设备时,需要遵循几个重要的步骤(图 3.40)。尤其重要的是刚刚说的传感器的设计,以及输出设备的设计,这二者有着密切的联系,因此它们的设计需要一并进行。
科控物联
2022/03/29
4510
[物联网] 3.5 反馈给显示世界
模拟IC设计简介
集成电路 (IC) 自 1950 年代后期推出以来一直统治着电子行业。所有迹象都表明,这些小黑匣子将继续主导市场,尤其是模拟IC设计,多年来变得越来越重要。
AsicWonder
2024/04/01
2230
模拟IC设计简介
FANUC数控板故障及维修
数控编程、车铣复合、普车加工、Mastercam、行业前沿、机械视频,生产工艺、加工中心、模具、数控等前沿资讯在这里等你哦
lrglu
2024/04/12
1820
FANUC数控板故障及维修
电阻科普知识
在电子学中, 电阻 是衡量导体对电流阻碍程度的重要物理量。它反映了材料阻止电子自由移动的能力,在电路中起着关键作用。电阻的国际标准单位是 欧姆(Ω) ,常用符号R表示。这个概念不仅适用于固体导体,还延伸至液体和气体介质中的电流传输过程。理解电阻的本质有助于我们更好地设计和优化各种电子设备和系统。
华东子
2024/11/07
2070
电阻科普知识
高阻抗低频率传感器的工频干扰
传感器的阻抗是指传感器在电气上对交流(AC)信号的抵抗。阻抗是一个复合参数,它结合了电阻(resistance)和电抗(reactance),这两者共同定义了传感器在特定频率下对电流流动的阻碍程度。
云深无际
2024/08/20
2990
高阻抗低频率传感器的工频干扰
运算放大器参考指南
电源电压(VCC) – 运算放大器正常工作时,两个电源引脚之间的电压差。在意法半导体的产品系列中可找到5V、16V和36V的产品。
云深无际
2023/02/27
5470
运算放大器参考指南
树莓派基础实验17:温度传感器实验
   温度传感器是检测温度并将其转换为输出信号的组件。根据材料和部件的特点,温度传感器可分为热电阻和热电偶两种,热敏电阻是前者的一种,他由半导体材料制成。大多数热敏电阻是负温度系数(NTC),其电阻随温度升高而降低,由于它们的电阻随温度变化剧烈变化,所以热敏电阻是最敏感的温度传感器。    模拟温度传感器模块使用NTC热敏电阻,因此可以对温度进行敏感测量。它还有一个内置比较器LM393,它可以使模块同时输出数字和模拟信号。该模块可用于温度报警和温度测量。
张国平
2020/09/27
2.9K0
Hall 传感器接口,PWM 协议,AK 协议,SENT协议
REF:R L9396 – Automotive Multiple Power Supply IC – STMicroelectronicsL9396 – Automotive Multiple Power Supply IC, L9396, STMicroelectronics
全栈程序员站长
2022/08/31
1.3K0
Hall 传感器接口,PWM 协议,AK 协议,SENT协议
matlab运算放大器概述,运算放大器概述「建议收藏」
第一个使用真空管设计的放大器大约在1930年前后完成,这个放大器可以执行加与减的工作。
全栈程序员站长
2022/08/22
2.1K0
matlab运算放大器概述,运算放大器概述「建议收藏」
推荐阅读
相关推荐
干货 | 掌握这些模块电路,轻松看懂电子电路图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档