jupyter book魔法命令(高级命令)

魔法命令

将jupyter notebook转换为markdown文件之后,效果不是很好看,可以访问以下链接:
https://nbviewer.jupyter.org/github/huxiwen/python3_jupyter_note/blob/master/%E9%AD%94%E6%B3%95%E5%91%BD%E4%BB%A4.ipynb

  • 使用jupyter运行相应的代码的快捷键等可以查看内置的help
  • jupyter book魔法命令(高级命令)_第1张图片

%run 用来加载外部的脚本

  • 由于text.py放在同一文件下,所以直接调用即可
%run text.py
Hello World

%timeit 记录多次程序的平均运行时间

  • 将中括号的代码循环运行了1000次,从中选取的多次运行的平均时间
  • %timeit 运行代码的循环次数是其自己选择的
  • range(1000000)的代码时,可以看到只运行了1次循环。(我的电脑相对较慢,所以循环10000000次用时3.42s±57.6ms)
%timeit L = [i**2 for i in range(1000)]
300 µs ± 3.47 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
%timeit L = [i**2 for i in range(10000000)]
3.42 s ± 57.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
  • 使用’%%'可以计算一个程序段的运行时间。%%可以表示一个作用域
%%timeit
L = []
for i in range(1000):
    L.append(i**2)
367 µs ± 19.2 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%time 记录一次程序运行的时间

  • 在看教程的时候。发现在运行%time时,别人的运行结果中会有CPU运行时间和Wall time。如下所示
  • CPU TIME: user:用户运行时间 sys:系统运行时间
  • Wall TIME: 物理花费的时间
  • 在你运行多次的时候会发现,每次执行的时间可能会不同(可以自己尝试一下)。
%time L = [i**2 for i in range(1000)]
Wall time: 1 ms
%%time
L = []
for i in range(1000):
    L.append(i**2)
Wall time: 998 µs
  • 下面的两段代码可以看到运行时间的差异比较大。
  • 用%timeit 的每次循环只花费了107us左右,而%time却3.99ms,相差很大
import random
L = [random.random() for i in range(10000)]
%timeit L.sort()
107 µs ± 1.84 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
L = [random.random() for i in range(10000)]
%time L.sort()
Wall time: 3.99 ms
  • 再次执行这段代码的时间却只有1.04ms
  • 实际上就是上一段代码,需要去排列一个无序的数组,而下面的一段代码排列的可能有利用到上一段代码运行过程中缓存等
%time L.sort()
Wall time: 0 ns
%time L.sort()
Wall time: 0 ns

%lsmagic 查看其它的魔法命令

%lsmagic

Available line magics:
%alias  %alias_magic  %autocall  %automagic  %autosave  %bookmark  %cd  %clear  %cls  %colors  %config  %connect_info  %copy  %ddir  %debug  %dhist  %dirs  %doctest_mode  %echo  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %macro  %magic  %matplotlib  %mkdir  %more  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %popd  %pprint  %precision  %profile  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %ren  %rep  %rerun  %reset  %reset_selective  %rmdir  %run  %save  %sc  %set_env  %store  %sx  %system  %tb  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%capture  %%cmd  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

查看魔法命令的文档

  • 以%run为例,在后面加上?可以输出它的文档。(可以试一下)
%run?

你可能感兴趣的:(python3,jupyter,notebook)