Anaconda
Anaconda [水蟒] 與Jupyter
初學 Python 者自學 Anaconda 的正確姿勢是什么?
Anaconda 和 Jupyter(包括Jupyter Notebook和JupyterLab,其中JupyterLab是從Notebook發展而來的)已成為數據分析的標准環境。
簡單來說,Anaconda是包管理器和環境管理器,Jupyter可以將數據分析的代碼、圖像和文檔全部組合到一個web文檔中。
1.Anaconda是什么?
2.如何安裝?
3. 如何管理包?
4.Jupyter notebook如何快速上手?
1、Anaconda是什么?
你可能已經安裝了 Python,那么為什么還需要 Anaconda?有以下3個原因:
1)Anaconda 附帶了一大批常用數據科學包,它附帶了 conda、Python 和 150 多個科學包及其依賴項。因此你可以立即開始處理數據。
2)管理包
Anaconda 是在 conda(一個包管理器和環境管理器)上發展出來的。
在數據分析中,你會用到很多第三方的包,而conda(包管理器)可以很好的幫助你在計算機上安裝和管理這些包,包括安裝、卸載和更新包。
3)管理環境
為什么需要管理環境呢?
比如你在A項目中用了 Python 2,而新的項目B老大要求使用Python 3,而同時安裝兩個Python版本可能會造成許多混亂和錯誤。這時候 conda就可以幫助你為不同的項目建立不同的運行環境。
還有很多項目使用的包版本不同,比如不同的pandas版本,不可能同時安裝兩個 Numpy 版本,你要做的應該是,為每個 Numpy 版本創建一個環境,然后項目的對應環境中工作。這時候conda就可以幫你做到。
總結Anaconda的三大特點:
- 內置python,高度集成python數據科學生態
- 擁有強大的包管理工具-conda
- 可用超過600個python數據科學庫
【注:conda和pip都可以管理python庫,但最大的不同在於conda是跨平台且不限語言的,而且可以獨自創建虛擬環境。
因為conda立足於數據科學生態,不像pip可以安裝幾乎所有的python庫(來自pypl),conda只能安裝anaconda里支持的數據科學庫(600多個)。】
2. 如何安裝Anaconda?
Anaconda 可用於多個平台( Windows、Mac OS X 和 Linux)。你可以在下面地址上找到安裝程序和安裝說明。根據你的操作系統是32位還是64位選擇對應的版本下載。
如果計算機上已經安裝了 Python,安裝不會對你有任何影響。實際上,腳本和程序使用的默認 Python 是 Anaconda 附帶的 Python,所以安裝完Anaconda已經自帶安裝好了Python,不需要你再安裝Python了。
注意:如果你是windows 10系統,注意在安裝Anaconda軟件的時候,右擊安裝軟件→選擇以管理員的身份運行。
3.如何管理包?
安裝了 Anaconda 之后,就可以很方便的管理包了(安裝,卸載,更新)。
按下圖點擊菜單欄,打開Anaconda Navigator
然后在Anaconda Navigator中按下圖操作
1)列出已安裝的包
2)安裝或者更新包
下圖中第5步,“apply”表示安裝這個包,‘clear’表示刪除已經安裝的包。
如果沒有“apply” 這個按鈕,表示這個包已經安裝過了。
Jupyter notebook
1.Jupyter notebook 是什么?
在沒有notebook之前,在IT領域工作的我都是這樣工作的:
在普通的 Python shell 或者在IDE(集成開發環境)如Pycharm中寫代碼,然后在word中寫文檔來說明你的項目。
這個過程很反鎖,通常是寫完代碼,再寫文檔的時候我還的重頭回顧一遍代碼。最蛋疼的地方在於,有些數據分析的中間結果,我還的重新跑代碼,然后把結果弄到文檔里給客戶看。
有了notebook之后,我的世界突然美好了許多,因為notebook 可以直接在代碼旁寫出敘述性文檔,而不是另外編寫單獨的文檔。也就是它可以能將代碼、文檔等這一切集中到一處,讓用戶一目了然。
2.如何啟動 Jupyter notebook?
對於做數據分析這么有用的神器,不安裝使用下是不是很遺憾?
安裝 Jupyter 的最簡單方法是使用 Anaconda。該發行版附帶了 Jupyter notebook。你能夠在默認環境下使用 notebook。
單擊Launch,啟動notebook后,在瀏覽器中會自動打開notebook頁面地址:http://localhost:8888
3.新手如何快速上手notebook?
1)頂部的3個選項卡
頂部的3個選項卡是:Files(文件)、Running(運行)和 Cluster(集群)。
Files(文件)顯示當前“notebook工作文件夾”中的所有文件和文件夾。【默認的工作文件夾一般是:C:\Users\xxx用戶】
點擊 Running(運行)選項卡會列出所有正在運行的 notebook。可以在該選項卡中管理這些 notebook。
Clusters一般不會用到。因為過去在 Clusters(集群)中創建多個用於並行計算的內核。現在,這項工作已經由 ipyparallel 接管。
修改工作文件夾
但是很多時候默認的“notebook工作文件夾”不是一個空的文件夾,不便於我們的數據分析工作,如何修改你的“notebook工作文件夾”呢?
有2個辦法可以解決,選擇下面其中一個適合你的方法就可以:
方法1:windows系統在菜單欄里修改
在下圖3的地方點擊鼠標右鍵,選擇屬性。
將下圖1和2的地方都替換成,你自己的“notebook工作文件夾”(最好是自己新建個空的文件夾,然后路徑修改成這個文件夾的路徑)修改后記得保存文件。
例如 我自己電腦上新建的一個空文件夾是c:\houzi,修改后如下:
注意:目標一欄的地址需要用" "括起來。
修改后點擊"確定"按鈕,然后再啟動notebook就生效了【直接啟動notebook,不要從anaconda中lanuch】。
方法2:通過配置文件修改,只適合從命令行啟動notebook
【省略】
2)如何創建一個新的notebook?
像下面圖片中一樣,在右側點擊“New”(新建),創建新的 notebook、文本文件、文件夾或終端。
“Notebooks”下的列表顯示了你已安裝的內核,這里直接選擇你電腦上默認的環境名即可(名稱可以與下面圖的不一樣)。

在這里你可以輸入自己人生中的第一行Python代碼Hello world。然后點擊圖中的運行按鈕,會執行你當前所在的代碼,其實我更喜歡用快捷鍵(鍵盤上同時按住ctrl+enter鍵)來執行代碼。
notebook 中的大部分工作均在代碼單元格中完成。這是編寫和執行代碼的地方。在代碼單元格中可以執行多種操作,例如編寫代碼、展示數據分析結果等。在一個單元格中執行的任何代碼在所有其他單元格中均可用。
當Cell前出現*,表示當前cell程序正在運行,或者它前面的cell正在運行。
添加標題等注釋
可以通過使用其他類型的cells來得到更加優美,解釋性更強的notebook。
我們在notebook的頂部添加一個標題。
做法是,選擇第一個cell,點擊Insert->Insert cell above,則在這個cell上面會添加一個新的單元。但是這個新cell默認是code類型,我們可以通過cell type菜單選擇Heading或Markdown替換之前的code類型,這樣就可以添加標題了。
不同的標題等級:
這個cell以#開頭,表示一級標題。如果你想列子標題的話,參考下面的方法:
-
# First level title
-
## Second level title
-
### Third level title
3)關閉 notebook文件
通過在服務器主頁上選中 notebook 旁邊的復選框,然后點擊“Shutdown”(關閉),你就可以關閉各個 notebook。
但是,在這樣做之前,請確保你保存了工作!否則,在你上次保存后所做的任何更改都會丟失。同時如果不保存,你下次運行 notebook 時,你還需要重新運行代碼。

4)如何上傳notebook文件?
其他人寫好的notebook文件發你,你想在自己電腦上運行,怎么辦?
點擊下圖紅框upload(上傳文件)

5)如何共享你的notebook?
點擊File->Download as,你可以選擇多種格式下載你的notebook。一般我都會根據下面的用途來選擇不同的下載格式:
1)如果我想和客戶分享我的數據分析成果,我會選擇將notebook下載為HTML文件。
2)如果我希望將自己的數據分析成果和代碼嵌入到項目中,比如為葯店管理系統做個數據分析子模塊,我就會選擇Python(.py)模塊,這可以將我的代碼融入項目中,成為子模塊,方便和其他開發人員共同完成任務。
3)如果要在博客或文檔中使用 notebook,我就選擇Markdown格式。
4)默認的notebook文件后綴是.ipynb

6)關閉Jupler notebook服務器
直接關閉打開notebook的頁面就可以。再次提醒,這會立即關閉所有運行中的 notebook,因此,請確保你保存了工作!
關閉notebook服務器后,下次啟動再打開notebook,當你繼續在該notebook中寫代碼時,發現之前的變量無法訪問了。需要你在該notebook的Kernerl選項卡中選擇“Run All”重新編譯下之前的代碼。

如果你實踐了上面的每一步,恭喜你,已經入門學會了 notebook。
上面的命令也不需要你記住,只有你后面經常使用notebook,自然就熟練了。