Jupyter Notebook 常用魔法命令
Jupyter NoteBook 是功能強大的Python互動IDE,深受資料分析師和演算法工程師的熱愛。Jupyter NoteBook 在綜合使用文字、程式碼、圖片等多種元素展示設計者的想法方面有著美妙的使用者體驗。而其自帶的一些常用Magic Command 可以讓它變得更加得心應手。
magic函式主要包含兩大類,一類是行魔法(Line magic)字首為%,一類是單元魔法(Cell magic)字首為%%;
最常用的魔法函式有以下幾個:
1、%lsmagic #列印當前可以用的魔法命令,當我們想使用一個魔法命令,而不知怎麼拼寫函式名時,可以使用%lsmagic來查詢;
%lsmagic
Available line magics: %alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %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 %rep %rerun %reset %reset_selective %rm %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 %%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.
2、%matplotlib? #魔法命令+?顯示魔法命令的說明 Docstring
%ls?
Repr: <alias ls for 'ls -F --color'>
%lsmagic?
Docstring: List currently available magic functions.
File: /usr/local/lib/python3.5/dist-packages/IPython/core/magics/basic.py
3、%matplotlib inline #使用matplotlib畫圖時,圖片嵌入在jupyter notebook裡面,不以單獨視窗顯示
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(10))
[<matplotlib.lines.Line2D at 0x7f2204c19be0>]
4、%timeit %%timeit #為程式碼執行計時
import numpy as np
%timeit np.sin(24)
2.42 µs ± 592 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%%timeit
x=np.sin(20)
np.cos(-x)
5.08 µs ± 463 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
5、%%writefile #後面緊接著一個file_name.py,表示在jupyter notebook裡面建立一個py檔案,後面cell裡面的內容為py檔案內容
%%writefile test_peace.py
import numpy as np
print(np.random.randint(1,5))
在當前路徑下會生成一個test_peace.py的檔案,內容就是cell裡面的內容
Writing test_peace.py
6、%run #後面緊接著一個相對地址的file_name.py,表示執行一個py檔案
%run test_peace.py
3
7、%pwd #和linux一樣,查詢當前目錄
%pwd
'/home/hanxiaoyang/ml_jxy5/0.Teacher/Exercise'
8、%cd #更改當前目錄
%cd ../
操作起來和Linux,Unix系統的檔案操作差不多
/home/hanxiaoyang/ml_jxy5/0.Teacher
9、%cp #複製檔案
%cp test_peace.py test_load.py
10、%whos #檢視當前變數,型別,資訊
%whos
Variable Type Data/Info
-------------------------------
np module <module 'numpy' from '/us<...>kages/numpy/__init__.py'>
plt module <module 'matplotlib.pyplo<...>es/matplotlib/pyplot.py'>
x float64 -0.3048106211022167
y list n=3
11、%reset #清除變數
%reset
%whos
Interactive namespace is empty.
前面定義的變數就已經全部被清除了
12、%del #清除某一個變數
13、%load #載入一個檔案裡面的內容
%load test_peace.py
# %load test_peace.py
import numpy as np
print(np.random.randint(1,5))