Jupyter的安装和启动
- Jupyter官网:http://jupyter.org/
- 安装:$
pip3 install jupyter
- 启动:$
jupyter notebook
Jupyter的一些注意事项和常用快捷键
1 ) 注意事项
- 代码执行顺序:注意到左侧的
In [1]
这种,[]中的是执行顺序
- 它不一定是从上往下执行的
- 尽量避免执行顺序和从上到下的次序不一致,以免再次加载(Restart & Run All)出现报错
- 在Jupyter中不需要使用输出命令,直接写变量名即可输出,非常方便
2 ) 常用快捷键
- 快速输出运行结果:比如,代码内容为:1 + 1,按 Ctrl + Enter 即可快速执行 得到结果 2
- 执行当前单元格并插入新的单元格:按 Shift + Enter
- 如果后面有单元格,则只会执行代码,而不会插入
- 如果确实想新增一个单元格,则使用 Alt + Enter
- 当前选中的格子会有高亮标注,按Esc则到了命令模式,类似vi编辑器,可以使用键盘来移动光标
- 如果删除格子,则按dd即可
Jupyter中的魔法命令
- 高级用法即魔法命令
%run
- 在单元格中书写代码 $
$run x.py
, 则执行当前脚本x
%load
- 读取文件中的代码 $
%load y.py
, 相当于复制y脚本中的内容到notebook中 - 除了这种,还可以直接使用
import
来直接导入模块, 如: - $
from demo/z import show
, 注意这里show是z模块中的一个方法 - $
show('x')
- 注意这里import对于已经导入的文件不会二次导入,修改z中的show方法不会影响当前notebook中的状态
- 如果需要动态的执行,可以使用 $
%run demo/z.py
, $show('x')
, 这里的show不管何时修改,可以被动态的读取
%timeit
- 用于测量代码块的执行时间
- 代码块:
li = [i**2 for i in range(1000)]
这里有个循环 - 我们开始进行测量:
%timeit li = [i**2 for i in range(1000)]
会输出测量结果 - 注意,这里如果循环次数少,notebook 尽可能测量准确,会将代码执行多次来取平均数来获得平均执行时间
- 当循环次数过多,则会适当减少次数
%%timeit
- 用于测试代码块的执行时间,如:
%%timeit
li = []
for i in range(1000):
li.append(i ** 2)
经过测试,可知用列表表达式比for循环有更好的性能表现
%time
- 不循环多次取平均值测量,仅一次粗略的估计执行时间
%time li = [i**2 for i in range(1000)]
- 重复执行,则会有不同结果
- 不准的原因是:受当前Cpu执行任务与时钟调度等影响
%%time
- 执行代码块的时间测试,同
%%timeit
, 不再举例 - 在机器学习算法测试的时候,经常要测试某个算法的执行时间,time 和 timeit 的魔法命令会经常用到
%%html
- 显示html代码, 在notebook中做出绚丽的效果
%%html
<div id='test' style='color:red'>html test</div>
%%js
- 用于在notebook中执行js代码的
%%js
document.querySelector('#test').innerHTML = 'test2'
!
- 用于执行系统命令,并且拿到执行结果
!dir
等
%%writefile
- 将当前代码写入本地文件
%%writefile 'test.py'
import random
li = [random.random() for i in range(1000)]
- 查看本地文件,则多了一个test.py