不論你是剛開始學 Python,還是正在啃數據分析的骨頭,對你來說,不斷在各種命令行窗口和編輯器里切來切去,或者不斷打開各種窗口查看 matplotlib 的輸出之類的繁瑣操作,一定是家常便飯了。哎呀,這都 8102 年了,除了又大又笨重的 IDE,難道就沒有什么簡單而直觀的辦法,讓我們這些新手能管理和運行代碼嗎?
當然有啊,還是免費的咧!
這款神器就叫 Jupyter Notebook,它一定能拯救你於水深火熱之中!
Jupyter Notebook 是一款 Web 應用,它能讓用戶將上面說的各種窗口里的東西,全部組合到一個可讀性好,易於共享,且對新手友好的文檔中。這個文檔里可以包括:
● live code (e.g. Python code)
可執行的代碼,比如我們需要的 Python 代碼
● visualizations
可視化的數據庫圖表,或者代碼執行之后生成的可視化效果,比如 matplotlib 輸出的圖像等
● explanatory text (written in markdown syntax)
各種解釋性文字,例如用 markdown 語法寫的格式化說明文本,Latex寫的數學方程等
因此,你可以方便地一邊寫代碼,一邊寫許多帶格式的注釋文本,還能讓運行結果實時在頁面內顯示出來。所以,Jupyter Notebook 很適合以下一些用途使用:
● 學習並嘗試運行 Python 代碼,觀察其效果
● 數據處理和轉換
● 數值模擬分析
● 統計建模
.
Jupyter Notebook 是一個 Web 應用程序,便於創建和共享文學化程序文檔,支持實時代碼、數學方程、可視化和 Markdown,其用途包括數據清理和轉換、數值模擬、統計建模、機器學習等等。目前,數據挖掘領域中最熱門的比賽 Kaggle 里的資料都是 Jupyter 格式。對於機器學習新手來說,學會使用 Jupyter Notebook 非常重要.
要運行 Jupyter Notebooks,只需輸入以下命令就可開始使用!
jupyter notebook
執行上面命令之后, Jupyter Notebook 將在你的默認瀏覽器中打開,網址為:http://localhost:8888/tree
在某些情況下,它可能無法自動打開。這種情況下,你的終端或者命令提示符中將會生成一個帶有令牌密鑰( token key )的網址。要打開 Notebook,你需要將整個 URL(包括令牌密鑰)復制粘貼到瀏覽器中。
Notebook 打開后,你會在頂部看到三個選項卡:Files(文件),Running(運行)和 Clusters(集群)。Files 基本上列出了所有的文件,Running 顯示你當前已經打開的終端和Notebooks,Clusters 由 IPython parallel 包提供,用於並行計算。
修改Jupyter的默認目錄:
jupyter notebook --generate-config
打開 jupyter_notebook_config.py 修改配置 c.NotebookApp.notebook_dir為自己的工作目錄
c.NotebookApp.notebook_dir = 'E:/jupyter/'
找到Jupyter Notebook,右鍵該快捷方式,選擇屬性進行快捷方式的設置,修改快捷方式的“目標(T)”,把目標框里面末尾的%USERPROFILE%去掉,刪除到.py后面就行,別刪多了。如下圖:
不刪這一句的話,jupter會使用user profile(用戶用戶預置文件,即默認目錄),之后無論你怎么改配置文件都不管用。所以,謹記!
(%USERPROFILE%這個路徑比較特別,它不是一個普通的文件夾,而是用戶配置文件的根目錄,用戶的所有特定數據,包括文件和注冊表信息都保存在這里。)
▌鍵盤快捷鍵——節省時間並提高效率!
快捷鍵是 Jupyter Notebooks 最好用的功能之一。當你想運行任何代碼塊時,你只需要按下Ctrl + Enter 即可。Jupyter Notebooks 提供的鍵盤快捷鍵非常多,為我們節省了大量時間。
以下是我們挑選的一些快捷鍵,你在開始使用 Notebooks 時會經常用到這些快捷鍵。我強烈建議你閱讀這些內容的時候一個一個地嘗試一下這些快捷鍵。
Jupyter Notebook 提供了兩種不同的鍵盤輸入模式 - 命令和編輯。命令模式將鍵盤與 Notebook 命令綁定,並由具有藍色左邊距的帶有灰色單元格邊框來表示。編輯模式允許你將文本(或代碼)輸入活動單元格,並以綠色單元格邊框表示。
使用 Esc 和 Enter 在命令和編輯模式之間跳轉。現在就試試吧!
一旦進入命令模式(即沒有活動單元格),就可以嘗試以下快捷鍵:
-
A 鍵將在選中單元格上方插入新單元格,B 鍵將在選中單元格下方插入一個單元格
-
要刪除單元格,請連續按兩次 D 鍵
-
要撤消已刪除的單元格,請按 Z 鍵
-
Y 鍵將當前的選中單元格變成代碼單元格
-
按住 Shift + 向上或向下箭頭鍵可以選擇多個單元格。在多選模式下,按 Shift + M 會合並選中的單元格
-
F 鍵會彈出 “查找和替換” 菜單
處於編輯模式時(在命令模式下按 Enter 鍵進入編輯模式),你會發現以下快捷鍵非常好用:
-
Ctrl + Home 轉到單元格的開頭
-
Ctrl + S 會保存你的工作
-
和上面提過的一樣,Ctrl + Enter 將運行你的整個單元格
-
Alt + Enter 不僅會運行你的單元格,它還會在下方添加一個新的單元格
-
Ctrl + Shift + F 打開命令選項板
要查看整個鍵盤快捷鍵列表,請在命令模式下按 H 或轉到 Help 菜單欄下的 Keyboard shortcuts。請經常檢查這些內容,因為經常會有新的快捷鍵被加進來。
我們還可以把單元格的類型從“代碼(Code)”改成“文本(Markdown)”,這樣你可以方便地用 markdown 語法寫出帶格式的注釋或說明文本,方便你整理歸納代碼,或是在數據分析時描述需要處理的數據信息等。
改了單元格類型之后,你會發現前面的 In [ ]: 標記不見了。你在這個單元格中輸入 markdown 標記時,會自動解析成不同大小,不同格式的文字標記.
如果你點擊一個單元格的周邊空白處或是輸出部分,你選中的這個單元格就進入了命令模式,左邊的指示條是藍色:
如果你點擊代碼區域,則單元格就進入編輯模式,光標將在你點擊的位置閃爍,而左邊的指示條也變成綠色,表示你正在編輯代碼內容:
在編輯時,你可以按 ESC 鍵退出編輯模式,回到命令模式。
這兩種模式的區別在於,在編輯模式下,代碼編輯框接收你所有的鍵盤輸入,讓你對代碼/文本進行編輯。而在命令模式下,Jupyter Notebook 頁面能響應你的各種鍵盤快捷命令。
Jupyter Notebook 還有一個很酷的功能:記錄點。你可以為當前的 notebook 文件創建一個記錄點,保存當前文件的所有狀態。創建記錄點之后,你可以隨時返回到當前的狀態,撤銷這期間做出的任何修改。
要創建一個新的記錄點,你只需要在菜單欄上選擇 File(文件)-> Save and Checkpoint(保存記錄點)即可。點完之后,你就會在標題旁看到 Checkpoint 保存的提示:
如果你想要返回到之前的 Checkpoint,你只需要在菜單欄上選擇 File(文件)-> Revert to Checkpoint(返回到記錄點),並點擊對應的記錄點的時間戳即可。
Cell的四種功能
Cell有四種功能:Code、Markdown、Raw NBConvert、Heading,這四種功能可以互相切換。Code用於寫代碼,Markdown用於文本編輯,Raw NBConvert中的文字或代碼等都不會被運行,Heading是用於設置標題的,這個功能已經包含在Markdown中了。四種功能的切換可以使用快捷鍵或者工具條。
Code用於寫代碼,三類提示符及含義如下:
提示符 | 含義 |
---|---|
In[ ] | 程序未運行 |
In[num] | 程序運行后 |
In[*] | 程序正在運行 |
Markdown用於編輯文本,給出常用的Markdown用法:
其他非常用的用法需要時可以再查閱。
其他
(1)按tab鍵查看提示信息或者補全命令
(2)在一個庫、方法或變量前加上 ?,就可以獲得它的一個快速語法說明
(3)使用分號可以阻止該行函數的結果輸出
Jupyter清理所有單元格輸出
4.2.5 Cell
選項 | 功能 |
---|---|
Run Cells | 運行單元內代碼 |
Run Cells and Select Below | 運行單元內代碼並將光標移動到下一單元 |
Run Cells and Insert Below | 運行單元內代碼並在下方新建一單元 |
Run All | 運行所有單元內的代碼 |
Run All Above | 運行該單元(不含)上方所有單元內的代碼 |
Run All Below | 運行該單元(含)下方所有單元內的代碼 |
Cell Type | 選擇單元內容的性質 |
Current Outputs | 對當前單元的輸出結果進行隱藏/顯示/滾動/清除 |
All Output | 對所有單元的輸出結果進行隱藏/顯示/滾動/清除 |
%matplotlib inline
-
這是 IPython 中定義的魔法函數(Magic Function),其意義是將那些用於
matplotlib
繪制的圖顯示在頁面里而不是彈出一個窗口,因此就不需要plt.show()
這一語句來顯示圖片,如下圖所示: -
因為這是 IPython 中的命令函數,因此只能在 jupyter notebook中使用,在其他地方使用或者直接運行會報錯
************************************************************************************************************
IPthon 提供了功能強大,內建的Magic函數,定義為:IPython中將任何第一個字母為%
的行視為 Magic Function的特殊調用,可以控制 IPython, 為其添加許多系統功能
https://www.jianshu.com/p/2dda5bb8ce7d
鏈接:
https://blog.csdn.net/guleileo/article/details/80490921