jupyter入門

  • 基本操作
    • 以In[ ]開頭表示這是一個(gè)代碼單元。在代碼單元里,你可以輸入任何代碼并執(zhí)行。例如,鍵盤輸入1+2,然后按“Shift+Enter”,代碼將被運(yùn)行,并顯示結(jié)果。同時(shí),切換到新的cell中。
    • 你也可以手動(dòng)添加cell,在insert->insert cell above/below
    • 添加markdown并預(yù)覽:
      • 添加一個(gè)新行,cell->cell type 設(shè)置為markdown
      • 要進(jìn)行預(yù)覽,直接點(diǎn)擊運(yùn)行或者“shift+enter”
    • 重命名:file->rename
  • 快捷鍵
    • 如果你在cell的編輯狀態(tài)[邊框顏色為綠色],需要按Esc退出,在執(zhí)行快捷鍵
    • H按鍵可以呼出快捷鍵列表
    • P鍵查找命令并執(zhí)行
    • 如果不行可以在Help->keyboard shortcuts
    • Esc + F 在代碼中查找、替換,忽略輸出。
    • Esc + O 在cell和輸出結(jié)果間切換。
    • 選擇多個(gè)cell:
      • Shift + J 或 Shift + Down 選擇下一個(gè)cell。
      • Shift + K 或 Shift + Up 選擇上一個(gè)cell。
      • 一旦選定cell,可以批量刪除/拷貝/剪切/粘貼/運(yùn)行。當(dāng)你需要移動(dòng)notebook的一部分時(shí)這個(gè)很有用。
    • Shift + M 合并cell.
  • 變量顯示
    • 有一點(diǎn)已經(jīng)眾所周知。把變量名稱或沒有定義輸出結(jié)果的語句放在cell的最后一行,無需print語句,Jupyter也會(huì)顯示變量值。當(dāng)使用Pandas DataFrames時(shí)這一點(diǎn)尤其有用,因?yàn)檩敵鼋Y(jié)果為整齊的表格。
    • 鮮為人知的是,你可以通過修改內(nèi)核選項(xiàng)ast_note_interactivity,使得Jupyter對(duì)獨(dú)占一行的所有變量或者語句都自動(dòng)顯示,這樣你就可以馬上看到多個(gè)語句的運(yùn)行結(jié)果了。
    from IPython.core.interactiveshell import InteractiveShell
    InteractiveShell.ast_node_interactivity = "all"
    
    • 如果你想在各種情形下(Notebook和Console)Jupyter都同樣處理,用下面的幾行簡單的命令創(chuàng)建文件~/.ipython/profile_default/ipython_config.py即可實(shí)現(xiàn):
    c = get_config()
    # Run all nodes interactively
    c.InteractiveShell.ast_node_interactivity = "all"
    
    from IPython.core.interactiveshell import InteractiveShell
    InteractiveShell.ast_node_interactivity = "all"
    from pydataset import data
    quakes = data('quakes')
    quakes.head()
    quakes.tail()
    
  • 查看文檔
    • 在Help 菜單下,你可以找到常見庫的在線文檔鏈接,包括Numpy,Pandas,Scipy和Matplotlib等。
      另外,在庫、方法或變量的前面打上?,即可打開相關(guān)語法的幫助文檔。
    ?str.replace()
    
  • Jupyter Magic命令
    • 文檔
    • Jupyter Magic-%env:設(shè)置環(huán)境變量:%env OMP_NUM_THREADS=4
    • Jupyter Magic - %run: 運(yùn)行python代碼,%run 可以運(yùn)行.py格式的python代碼——這是眾所周知的。不那么為人知曉的事實(shí)是它也可以運(yùn)行其它的jupyter notebook文件,這一點(diǎn)很有用。 %run ./test.ipynb
    • Jupyter Magic -%load:從外部腳本中插入代碼,加載一個(gè)文件,使之成為當(dāng)前cell的內(nèi)容 比如:%load ./hello_world.py
    • Jupyter Magic - %store: 在notebook文件之間傳遞變量,存:%store 變量名,?。?store -r 變量名
    • Jupyter Magic - %who: 列出所有的全局變量,后面加類型比如str就能列出所有str類型的全局變量
    • Jupyter Magic – 計(jì)時(shí), %%time 和 %timeit.當(dāng)你有一些很耗時(shí)的代碼,想要查清楚問題出在哪時(shí),這兩個(gè)命令非常給力。 %%time 會(huì)告訴你cell內(nèi)代碼的單次運(yùn)行時(shí)間信息。%%timeit 使用了Python的 timeit 模塊,該模塊運(yùn)行某語句100,000次(默認(rèn)值),然后提供最快的3次的平均值作為結(jié)果。
      • %%time
        • 輸入
        In [4]: %%time
                import time
                for _ in range(1000):
                    time.sleep(0.01)# sleep for 0.01 seconds
        
        • 輸出:
        CPU times: user 21.5 ms, sys: 14.8 ms, total: 36.3 ms
        Wall time: 11.6 s
        
      • %%timeit
        • 輸入
        In [3]: import numpy
                %timeit numpy.random.normal(size=100)
        
        • 輸出
        The slowest run took 7.29 times longer than the fastest. This could mean that an intermediate result is being cached.
        100000 loops, best of 3: 5.5 μs per loop
        
        
    • Jupyter Magic - %%writefile and %pycat:導(dǎo)出cell內(nèi)容/顯示外部腳本的內(nèi)容,使用%%writefile filename可以保存cell的內(nèi)容到外部文件。 而%pycat功能相反,把外部文件語法高亮顯示(以彈出窗方式)。
    • Jupyter Magic - %prun: 告訴你程序中每個(gè)函數(shù)消耗的時(shí)間,%prun some_useless_slow_function()
    • Jupyter Magic –用%pdb調(diào)試程序
  • 運(yùn)行Shell命令:!ls *.py列出所有的py文件
  • 用LaTex 寫公式:[等會(huì),簡書支持科學(xué)公式了????]
    • 行內(nèi)公式:P(A \mid B) = \frac{P(B \mid A) , P(A)}{P(B)}
    • 獨(dú)占一行:P(A \mid B) = \frac{P(B \mid A) , P(A)}{P(B)}
  • 執(zhí)行shell命令
!ls
  • 在jupyter里作圖
    • matplotlib (事實(shí)標(biāo)準(zhǔn)),可通過%matplotlib inline 激活,詳細(xì)鏈接
    • matplotlib notebook 提供交互性操作,但可能會(huì)有點(diǎn)慢,因?yàn)轫憫?yīng)是在服務(wù)器端完成的。
    • mpld3 提供matplotlib代碼的替代性呈現(xiàn)(通過d3),雖然不完整,但很好。
    • bokeh 生成可交互圖像的更好選擇。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容