當前位置:
首頁 > 最新 > 史上最全的Python數據分析工具:Notebook教程

史上最全的Python數據分析工具:Notebook教程

我會從下面4個方面詳細聊聊,記得實踐每一步,你將不僅了解什麼是Jupyter notebook,而且還能輕鬆使用這個神器進行數據分析。

1.Jupyter notebook 是什麼?

2.如何安裝 Jupyter notebook?

3.如何啟動Jupyter notebook?

4.新手如何快速使用notebook?

1.Jupyter notebook 是什麼?

在沒有notebook之前,在IT領域工作的我都是這樣工作的:

在普通的 Python shell 或者在IDE(集成開發環境)如Pycharm中寫代碼,然後在word中寫文檔來說明你的項目。

這個過程很反鎖,通常是寫完代碼,再寫文檔的時候我還的重頭回顧一遍代碼。最蛋疼的地方在於,有些數據分析的中間結果,我還的重新跑代碼,然後把結果弄到文檔里給客戶看。

有了notebook之後,我的世界突然美好了許多,因為notebook 可以直接在代碼旁寫出敘述性文檔,而不是另外編寫單獨的文檔。也就是它可以能將代碼、文檔等這一切集中到一處,讓用戶一目了然。

例如,我的數據分析社群小夥伴就用Jupyter notebook寫出了他的學習筆記,長這樣,是不是很酷:

所以,你現在明白了這句話是在說什麼了:

Jupyter notebook(http://jupyter.org/) 是一種 Web 應用,能讓用戶將說明文本、數學方程、代碼和可視化內容全部組合到一個易於共享的文檔中。

Jupyter Notebook 已迅速成為數據分析,機器學習的必備工具。因為它可以讓數據分析師集中精力向用戶解釋整個分析過程。

Jupyter這個名字是它要服務的三種語言的縮寫:Julia,PYThon和R,這個名字與「木星(jupiter)」諧音。

2.如何安裝 Jupyter notebook?

對於做數據分析這麼有用的神器,不安裝使用下是不是很遺憾?

安裝 Jupyter 的最簡單方法是使用 Anaconda。該發行版附帶了 Jupyter notebook。你能夠在默認環境下使用 notebook。

確保你已經安裝了Anaconda,如果不知道如何安裝的,可以看我之前寫的:

要在 conda 環境中安裝 Jupyter notebook,在conda終端使用命令(以下所有命令是指conda的終端Anaconda Prompt):

conda install jupyter notebook

也可以通過python shell的 pip 來安裝:pip install jupyter notebook。

3.如何啟動Jupyter notebook?

啟動 notebook 伺服器,在終端中輸入: jupyter notebook。

伺服器會在你運行此命令的「notebook工作文件夾」中啟動。也就是說後面你操作的任何 notebook 文件都會保存在該文件夾下,類似於你用優酷下載視頻,優酷都會放到自己的下載目錄一樣。例如我在下面的C:houzi 下面啟動目錄後,會在該目錄下看到我後面運行的文件。

啟動notebook 伺服器後,在瀏覽器中打開notebook頁面地址:http://localhost:8888

(其中localhost 表示你的計算機,而 8888 是伺服器的默認埠)

如果你同時啟動了另一個 notebook 伺服器,新伺服器會嘗試使用埠 8888,但由於此埠已被佔用,因此新伺服器會在埠 8889 上運行。之後,你可以通過 http://localhost:8889 連接到新伺服器。以此類推。

這裡需要注意的:有的人啟動notebook後, 會遇到下面的問題(沒遇到這些問題的,自動跳過)。

1)瀏覽器頁面不能彈出顯示

出現這個原因是因為你沒有指定一個瀏覽器來打開jupyter notebook,這就導致jupyter notebook不知如何進入網頁,這種情況的出現一般因為電腦上存在兩個瀏覽器導致的,所以只要把其中一個設為默認瀏覽器就可以了。詳細見這裡:Jupyter Notebook不能使瀏覽器彈出問題之一

2)報錯:ImportError: cannot import name "ensure_dir_exists"

解決辦法:需要從終端手動更新 jupyter_core and jupyter_client如下

conda update jupyter_core jupyter_client

3)出現下面這個報錯,可以不用管,直接關閉右上角插號即可。原因是因為:

3)notebook啟動後,瀏覽器中的頁面出現空白

解決辦法是:換個瀏覽器

4)問題

解決辦法:

先修改「notebook工作文件夾」,後面你很多的新建的notebook都在該文件夾下,比如我的「notebook工作文件夾」就是自己新建了一個空的文件夾用於存放我的項目:chouzi

但是很多時候默認的「notebook工作文件夾」不是一個空的文件夾,不便於我們的數據分析工作,如何修改你的「notebook工作文件夾」呢?

1)在Anaconda Prompt終端中輸入下面命令,查看你的notebook配置文件在哪裡:

jupyter notebook --generate-config

根據你運行實際顯示的路徑,打開這個配置文件(可以用notepad++軟體打開各種格式的文件),我電腦上是這個文件C:Users用戶.jupyterjupyter_notebook_config.py

ps:Notepad++可以打開各種文件格式,作為一款小巧輕量且強大的編輯工具,也被中國開發者廣泛使用。

2)通過搜索關鍵詞:c.NotebookApp.notebook_dir,定位到下面這行

然後修改成以下你自己的「notebook工作文件夾」(最好是自己新建個空的文件夾,然後路徑修改成這個文件夾的路徑)修改後記得保存文件。

這裡一定要注意哦,要去掉這行前面的#(#在表示注釋掉不起作用),不同操作系統的電腦路徑不一樣,windows是雙斜杠(),linux是反斜杠(/),Mac路徑最好自己百度下。

另外,設置的時候,所有的內容都必須是英文狀態下的,並且你設置的這個文件夾是已經存在的。

3)記得修改後最後要重啟notebook伺服器讓修改生效

4.新手如何快速使用notebook?

1)確保你在Anaconda終端中安裝了以下包:

?安裝環境自動關聯包

conda install nb_conda

該包可以將conda中創建的環境自動關聯到你的notebook中。

我們可以對應conda中的環境,就知道這些環境對應conda中的環境列表。用 conda env list 就可以列出你創建的所有環境。

其中py2是我在conda中創建的Python2環境名稱,

root和default一樣是默認環境,因為我安裝的是Anaconda3,所以默認環境是Python3。

你會發現環境名稱py3沒有出現在notebook中。解決辦法是按下圖步驟安裝包ipykernel。

(同樣的,在你的py2環境下也要像剛才步驟那樣安裝一次這個包)

完成上面安裝步驟,回到標籤頁「Files」,再新建notebook時,會發現已經關聯了環境名稱py2和py3:

這樣你在notebook中可以輕鬆切換Python2和Python3環境了。

在Anaconda終端安裝代碼自動補全包

conda install pyreadline

什麼是代碼自動補全呢?

後面會介紹,您就等好吧。

1)頂部的3個選項卡

頂部的3個選項卡是:Files(文件)、Running(運行)和Cluster(集群)。

Files(文件)顯示當前「notebook工作文件夾」中的所有文件和文件夾。

點擊Running(運行)選項卡會列出所有正在運行的 notebook。可以在該選項卡中管理這些 notebook。

Clusters一般不會用到。因為過去在Clusters(集群)中創建多個用於並行計算的內核。現在,這項工作已經由ipyparallel接管。

2)如何創建一個新的notebook?

像下面圖片中一樣,在右側點擊「New」(新建),創建新的 notebook、文本文件、文件夾或終端。

「Notebooks」下的列表顯示了你已安裝的內核。由於我在 Python 3 環境中運行伺服器,因此列出了 Python 3 內核。你在這裡看到的可能是 Python 2。這裡我點擊Python3。

這樣你就打開了下面的頁面,你會看到外框為綠色的一個小方框。它稱為單元格。單元格是你編寫和運行代碼的地方。以後你就可以在這裡寫你的數據分析代碼了。

在這裡你可以輸入自己人生中的第一行Python代碼Hello world。然後點擊圖中的運行按鈕,會執行你當前所在的代碼,其實我更喜歡用快捷鍵(鍵盤上同時按住ctrl+enter鍵)來執行代碼。

這句代碼的意思是在界面輸出字元串"Hello world!",所以你會看到在下面與輸出結果出來。

運行代碼單元格時,單元格下方會顯示輸出。單元格還會被編號(左側會顯示 In [1]:)。如果運行了多個單元格的話(也就是多塊代碼),這能讓你知道運行的代碼和運行順序。

notebook 中的大部分工作均在代碼單元格中完成。這是編寫和執行代碼的地方。在代碼單元格中可以執行多種操作,例如編寫代碼、給變數賦值、導入包,展示數據分析結果等。在一個單元格中執行的任何代碼在所有其他單元格中均可用。

+ 按鈕用於創建新的單元格

還記得一開始我提到代碼自動補全功能嗎?那麼,什麼是代碼自動補全呢?

比如 我定義了下面的變數。

在後面代碼中用到這個變數是,我只要輸入第一個變數的第一個字母p,然後按下Tab鍵,邊會自動查找到代碼中以p開頭的變數名稱,這可以大幅度提供你寫代碼的效率。

但是要注意:如果你定義的變數想出現在代碼補全里,需要你先把定義該變數的cell運行以後,notebook才能識別它。

當Cell前出現*,表示當前cell程序正在運行,或者它前面的cell正在運行。

2)重命名notebook

你會看到剛才我建的notebook文件名是下面這樣默認的,我想修改成自己喜歡的文件名如何辦呢?

點擊「File」->Rename,可以對notebook文件進行重命名,這裡我命名成『Helloworld』

同時,你可以在當前運行notebook伺服器的「notebook工作文件夾」下看到創建的notebook,文件名後綴是ipynb。

(其實Notebook 就是個擴展名為 .ipynb 的大型JSON文件。)

3)重新運行所有單元格里的代碼

4)關閉 notebook文件

通過在伺服器主頁上選中 notebook 旁邊的複選框,然後點擊「Shutdown」(關閉),你就可以關閉各個 notebook。

但是,在這樣做之前,請確保你保存了工作!否則,在你上次保存後所做的任何更改都會丟失。同時如果不保存,你下次運行 notebook 時,你還需要重新運行代碼。

5)如何共享你的notebook?

點擊File->Download as,你可以選擇多種格式下載你的notebook。一般我都會根據下面的用途來選擇不同的下載格式:

1)如果我想和客戶分享我的數據分析成果,我會選擇將notebook下載為HTML文件。

2)如果我希望將自己的數據分析成果和代碼嵌入到項目中,比如為藥店管理系統做個數據分析子模塊,我就會選擇Python(.py)模塊,這可以將我的代碼融入項目中,成為子模塊,方便和其他開發人員共同完成任務。

3)如果要在博客或文檔中使用 notebook,我就選擇Markdown格式。

6)關閉Jupler notebook伺服器

通過在終端中按兩次 Ctrl + C,可以關閉整個伺服器。再次提醒,這會立即關閉所有運行中的 notebook,因此,請確保你保存了工作!

關閉notebook伺服器後,下次啟動再打開notebook,當你繼續在該notebook中寫代碼時,發現之前的變數無法訪問了。需要你在該notebook的Kernerl選項卡中選擇「Run All」重新編譯下之前的代碼。

7)安裝的包在notebook中不可使用的問題:

是因為安裝包的時候,不在當前notebook所在的python環境下安裝了包,所以在這個python環境下找不到包。解決辦法如下:

如果你實踐了上面的每一步,恭喜你,已經入門學會了 notebook。上面的命令也不需要你記住,只有你後面經常使用notebook,自然就熟練了。想想,你每天說話,會記住每個單詞嗎?當然不會,用的多了自然在大腦中就形成了記憶,而所謂的新技能學習,無非也是熟能生巧。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

2018程序員拜年的奇思妙想,漲姿勢了
Python需要了解清楚的問題

TAG:Python |