來,開始使用Jupyter
最近正在B站看吳恩達的機器學習(Machine Learning)課程。看了6周課程後感覺受益匪淺,雖然是面向非數學專業的基礎課程,但所涉及到的高等數學和線性代數講得很容易理解。
說到機器學習,自然會涉及到對數據進行大量的計算,而python在這方面提供了非常豐富的資源。隨著大量開源的代碼貢獻出來,如何快速使用別人造好的輪子,驗證自己的數據,就需要一個方便的python環境,這個環境不僅是用於開發,更多的是便於測試演算法、計算數據。
十分適合在學習python時使用,不用在終端中噼里啪啦地打命令,也不需要為了測試一個代碼段而特意打開IDE編輯器編寫腳本。直接在網頁端進行代碼編寫並運行,數據可以方便地通過畫出圖形,同時還支持,使用非常方便。作為剛開始了解python的入門者,在折騰了一圈之後,在這裡做個簡單的使用說明。
安裝說明
官網上強烈建議是安裝Anaconda集成套件,因為已經集成了Jupyter,可以直接運行,但是我的環境沒有安裝Anaconda,所以採用最原始的安裝方法。具體方法可見官網說明,其實很簡單,就是最簡單的pip安裝命令:
需要注意的是,我使用pyenv來支持多版本的python,所以pip指向的是當前的python版本3.6.x,而沒有安裝pyenv的話,pip和pip3可能對應的分別是系統中的python2和python3。
建議使用python3時要注意,如果本機環境還需要用到Node.js,那麼安裝某些npm包時運行node-gyp會出錯,因為gyp僅支持python2,這時候需要特別定義一下python的使用版本,運行下面的命令即可設置npm使用n你本地的python2
一切順利的話,Jupyter已經安裝完成,如果安裝過程中有缺少某些模塊的話,可能需要手工補上後再運行安裝命令。
啟動服務
在啟動Jupyter的服務之前,先安裝幾個擴展包,便於配置和使用Jupyter。運行命令:
完成後運行命令:
會生成一個默認配置文件,打開這個文件去掉注釋可以修改相應的參數。建議先把Jupyter的notebook存放路徑修改掉。修改參數為自己定義的路徑,默認為空,即是當前用戶的目錄。
運行命令,啟動Jupyter服務,並自動打開瀏覽器訪問,這是默認Jupyter服務的綁定埠,可以在配置文件中修改相應綁定IP地址和埠值。
配置服務
進入Jupyter服務首頁後,可以看到當前的所在目錄,如果有後綴的文件就是notebook的文件,可以直接打開,沒有的話就點擊右側的按鈕,創建一個新的python3 notebook。
在創建新的notebook之前,可以先看看tab頁,這是前面安裝了擴展包後出現的工具,點擊後可以發現裡面有很多有用的擴展,選擇自己需要的啟用即可,然後回到打開的notebook中刷新一下,就能使用。我列了一些個人覺得比較實用的擴展:
其他還有更多的擴展根據每個人的需要選擇使用
使用Jupyter
編寫並運行代碼
Jupyter Notebook的使用很簡單,基本上按照工具條上的按鈕和菜單嘗試一下就了解了,這裡簡單介紹一些剛開始容易摸不著頭腦的地方
如果你熟悉VIM的指令,在Notebook中的操作會很方便,簡單來說按下進入命令行模式,再按下或雙擊滑鼠進入編輯模式,在命令行模式下有相應的快捷鍵便於操作。但是搞不清除這些也無所謂,所有的操作都能夠在菜單和工具條上找到,不會影響使用。
新增按鈕創建出來的是一個「單元」,默認是,所以要想寫需要切換一下,在工具條上可以很容易找到切換按鈕。
在單元中所有輸入的內容都是代碼,都是要通過運行才能得到結果,而每個單元都可以單獨運行,默認是運行當前塊並把游標跳轉到下一個塊,安裝了擴展,會有一個新的工具條,這裡面有更多的運行方式可供選擇。如果輸入的是Markdown,那麼同樣需要運行才能看到效果。輸入Markdown後可以用快捷鍵馬上看到實際的效果,這個快捷鍵是運行當前單元但還是停留在原地。如果安裝了擴展,可以實時看到Markdown的效果,非常直觀有效。Markdown同時還支持LaTeX數學公式,具體請自行研究
執行系統命令
如果單元中需要運行操作系統的指令,可以在命令前加上運行,但是請注意是不會改變當前的運行目錄,即多次切換路徑後執行總是顯示我們在配置文件里定義的notebook_dir路徑。
魔法指令
還有一些魔法指令是屬於Jupyter Notebook本身的操作,命令都是使用開頭,運行可以看到所有的魔法指令,具體應用也請自行查閱官方文檔,在使用matplotlib畫圖時,可能會出現錯誤,按網上推薦的操作,是告訴Jupyter獲取所有matplotlib生成的圖形,並把它們全部嵌入到notebook中。為此,只需輸入以下命令:
這條語句執行可能會花點時間,但是只需要你打開notebook時執行一次就好
我在初步嘗試繪圖時並沒有運行這條魔法指令,所以可能和安裝環境或者運行的代碼有關,並發必要條件
變數
整個Notebook的變數都是在一個命名空間內,所以只要在第一個單元中申明過的變數或者導入的模塊,在後面的單元中都可以直接使用,這樣可以把代碼編寫成一個個片段,便於調試和查看。
安裝了擴展後,在菜單上會多出一個,裡面有一些常用模塊的代碼片段,比如用NumPy生成一個多維數組數據,很適合學習python時使用。同時還Markdown的語法片段,需要插入圖片、表格時忘記語法也不怕。
安裝了擴展後,可以在Markdown的單元中使用就能調用之前的python單元中的變數值
單元
單元中編輯代碼時還可以使用代碼補全的快捷鍵,Tab鍵在Markdown里是正常的編輯縮進操作,但是在Code裡面可以補全命令或提示代碼,操作同Linux的命令補全方法。
單元如果要調整位置可以用工具條中的上下按鈕,而如果想在現有的單元前插入一個新的塊,就需要在菜單中選擇,或者使用快捷鍵
更多快捷鍵可以看-
保存下載
幸辛苦苦寫了一大堆內容,萬一掛了怎麼辦?
Jupyter Noteb有自動保存,同時自己也可以執行-
在菜單下還有很多格式可以轉化並下載,但是相應的轉化是需要有對應的模塊支持的,導出成不需要特殊模塊,導出成還需要有其他模塊的支持,具體可以自行嘗試。安裝過擴展後,可以把當前Notebook中所有的內容(包括輸出結果)導出成一個靜態Html頁,內嵌了樣式和圖片,便於放到其他網站上。
添加新的內核
Jupyter Notebook不僅可以使用python,還可以使用其他開發語言作為內核,在Jupyter的github wiki中列出了所支持的內核列表,可以選擇安裝自己熟悉的開發語言,比如安裝了可以創建Node.js類型的Notebook。
需要注意的是,每個Notebook都只能使用一種語言內核,除了在新建時需要決定內核,在創建Notebook後也可以在菜單-切換內核。
以上內容都是在中編寫,作為一個web端的Markdown編輯器來說還不錯,不過日常使用(比如寫這段文字)還是推薦使用,所見即所得,可以導出成各種樣式,並且跨平台支持Windows和Mac。
保存的文件可以在github上可以直接預覽,這個很贊。之前說過的就是基於搭建,所以可以在本地創建的文件可以直接上傳到Colab使用。
TAG:凌波微步 |