標籤:

Anaconda和Jupyter你學會了么

簡單說說Anaconda和Jupyter有什麼作用?

Anaconda 是一個包含數據科學常用包的 Python 發行版本。它基於 conda ——一個包和環境管理器——衍生而來。Anaconda 實際上是一個軟體發行版,它附帶了 conda、Python 和 150 多個科學包及其依賴項。conda是包和環境的管理器。Anaconda 的下載文件比較大(約 500 MB),因為它附帶了 Python 中最常用的數據科學包。如果只需要某些包,或者需要節省帶寬或存儲空間,也可以使用 Miniconda 這個較小的發行版(僅包含 conda 和 Python)。但你仍可以使用 conda 來安裝任何可用的包,它只是自身沒有附帶這些包而已。

Jupyter notebook 是一種 Web 文檔。寫過項目的都知道,我們在編譯器寫代碼,然後又去打開word或者其他的文本編輯工具去寫開發文檔,而且調試也不是非常的方便,是不是感覺特麻煩。 Jupyte的出現就解決我們的各種麻煩,能夠讓我們把文本,圖像和代碼全部組合在一個文檔中,而且,調試也特別的方便,大大的提高我們開發的效率 ——簡直就是一個神奇

1.Anaconda

安裝 Anaconda

Anaconda 可用於 Windows、Mac OS X 和 Linux。可以在 continuum.io/downloads 上找到安裝程序和安裝說明。

如果計算機上已經安裝了 Python(或者自帶了),這不會有任何影響。實際上,腳本和程序使用的默認 Python 是 Anaconda 附帶的 Python。

安裝的版本可以根據自己的電腦配置安裝,安裝過程中遇到的大多數問題都是環境的配置問題,聰明的人都會百度的

完成安裝後,會自動進入默認的 conda 環境,而且所有包均已安裝完畢,如下面所示。可以在終端或命令提示符中鍵入Conda list,以查看你安裝的內容。

https://www.zhihu.com/video/934433850122260480

在 Windows 上,會隨 Anaconda 一起安裝一批應用程序:

  • Anaconda Navigator,它是用於管理環境和包的 GUI
  • Anaconda Prompt 終端,它可讓你使用命令行界面來管理環境和包

安裝之後為了避免報錯,最好在默認環境下更新所有的包。打開 Anaconda Prompt (或者 Mac 下的終端),輸入:conda upgrade --all,首次安裝的時候軟體包版本一般都比較老,因此提前更新可以避免未來不必要的問題。

管理包

安裝了 Anaconda 之後,管理包是相當簡單的。要安裝包,就在終端中鍵入conda install 要安裝的包的名字。例如,要安裝 numpy,請鍵入 conda install numpy

https://www.zhihu.com/video/934437928164356096

我們還可以同時安裝多個包,類似於這樣:conda install numpy numpy scipy pandas的命令同時安裝多個包,同時也可以安裝我們指定版本的包conda install numpy=1.1.0,1.1.0就是版本號,只要版本號存在都會安裝的

conda還會自動安裝依賴項,比如說:scipy依賴於numpy,因為使用scipy需要numpy,所以我們安裝scipy的時候,會自動安裝上Numpy(如果numpy尚未安裝)

卸載包

我們不想要某個包了,可以使用conda remove 包名

更新包

我們想要更新包,可以使用conda update 包名,如果我們想要更新所有的包:conda udate --all

管理環境

為了包的衝突等,我們常常使用conda來創建虛擬環境,如果想要創建環境:conda create -n env_name(-n 就是name的意思,env_name就是環境的名字,可以任意指定),創建環境之後我們可以使用conda env list來查看我們的環境是否創建成功(env是environment的縮寫)

https://www.zhihu.com/video/934443424283783168

進入剛才創建的環境(進入環境命令的前面會是我們的環境名字)和退出環境

https://www.zhihu.com/video/934445216518262784

進入環境後,你會在終端提示符中看到環境名稱,它類似於 (my_env) ~ $。環境中只安裝了幾個默認的包,以及你在創建它時安裝的包。我們可以使用檢查這一點。在環境中安裝包的命令與前面一樣:conda install package_name不過,這次你安裝的特定包僅在你進入環境後才可用。要離開環境,請鍵入 source deactivate(在 OSX/Linux 上)。在 Windows 上,請使用deactivate。

保存和載入環境

這是一個很重要的功能,能讓其他人安裝我們的代碼中使用的所有包,這樣就避免不同的人會使用不用的版本衝突問題。可以輸入:conda env export > envirment.yaml conda env export是導出當前環境,> envirment.yaml就是保存的文件,然後如果別人想要直接創建跟你一樣的環境開發項目就可以直接使用conda env create -f envirment.yaml

https://www.zhihu.com/video/934450457682862080

刪除環境

刪除環境輸入:conda env remove -n env_name(環境的名字)

更多conda命令:參考這篇 conda 文檔。

2.Jupyter

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

Jupyter notebook 源自 Fernando Perez 發起的 IPython 項目。IPython 是一種互動式 shell,與普通的 Python shell 相似,但具有一些很好的功能(例如語法高亮顯示和代碼補全)。最初,notebook 的工作方式是,將來自 Web 應用(你在瀏覽器中看到的 notebook)的消息發送給 IPython 內核(在後台運行的 IPython 應用程序)。內核執行代碼,然後將結果發送回 notebook。當前架構與之相似,具體見下圖。

核心是 notebook 的伺服器。你通過瀏覽器連接到該伺服器,而 notebook 呈現為 Web 應用。你在 Web 應用中編寫的代碼通過該伺服器發送給內核,內核運行代碼,並將結果發送回該伺服器。之後,任何輸出都會返回到瀏覽器中。保存 notebook 時,它將作為 JSON 文件(文件擴展名為 .ipynb)寫入到該伺服器中。

此架構的一個優點是,內核無需運行 Python。由於 notebook 和內核分開,因此可以在兩者之間發送任何語言的代碼。例如,早期的兩個非 Python 內核分別是 R 語言和 Julia 語言。使用 R 內核時,用 R 編寫的代碼將發送給執行該代碼的 R 內核,這與在 Python 內核上運行 Python 代碼完全一樣。IPython notebook 已被改名,因為 notebook 變得與編程語言無關。新的名稱 JupyterJulia、Python 和 R 組合而成。

另一個優點是,你可以在任何地方運行 notebook 伺服器,並且可通過互聯網訪問伺服器。通常,你會在存儲所有數據和 notebook 文件的自有計算機上運行伺服器

安裝 Jupyter notebook

安裝 Jupyter 的最簡單方法是使用 Anaconda.

要在 conda 環境中安裝 Jupyter notebook,請使用 conda install jupyter notebook

也可以通過 pip 使用 pip insatll jupyter notebook來獲得 Jupyter notebook。

Jupyter notebook 伺服器 啟動

啟動notebook伺服器,在終端輸入jupyter notebook,運行完之後,瀏覽器會自動打開notebook.默認情況下,notebook 伺服器的運行地址是 http://localhost:8888。該地址的含義是:localhost 表示你的計算機,而 8888 是伺服器的通信埠。只要 notebook 伺服器仍在運行,你隨時都能通過在瀏覽器中輸入http://localhost:8888 返回到 web 頁面中。

如果同時啟動了另一個 notebook 伺服器,新伺服器會嘗試使用埠 8888,但由於此埠已被佔用,因此新伺服器會在埠 8889 上運行。之後,你可以通過 http://localhost:8889 連接到新伺服器。每個額外的 notebook 伺服器都會像這樣增大埠號。

如果啟動notebook伺服器,它應類似以下所示:

在右側,你可以點擊「New」(新建),創建新的 notebook、文本文件、文件夾或終端。「Notebooks」下的列表顯示了你已安裝的內核。由於我在 Python 2 環境中運行伺服器,因此列出了 Python 2 內核。

如果在 conda 環境中運行 Jupyter notebook 伺服器,則還能選擇環境中任何其他的內核(見下圖)。要創建新的 notebook,請點擊你要使用的內核。

頂部的選項卡是 Files(文件)、Running(運行)和 Cluster(集群)。Files(文件)顯示當前目錄中的所有文件和文件夾。點擊 Running(運行)選項卡會列出所有正在運行的 notebook。可以在該選項卡中管理這些 notebook。

關閉 Jupyter

通過在伺服器主頁上選中 notebook 旁邊的複選框,然後點擊「Shutdown」(關閉),你就可以關閉各個 notebook。但是,在這樣做之前,請確保保存了工作!否則,在上次保存後所做的任何更改都會丟失。下次運行 notebook 時,還需要重新運行代碼。

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

Notebook 界面

創建新的 notebook 時,你會看到如下所示的界面:

你會看到外框為綠色的一個小方框。它稱為單元格。單元格是你編寫和運行代碼的地方。你也可以更改其類型,以呈現 Markdown(一種常用於編寫 Web 內容的格式化語法)。

運行代碼單元格時,單元格下方會顯示輸出。單元格還會被編號(左側會顯示 In [1]:)。這能讓你知道運行的代碼和運行順序(如果運行了多個單元格的話)。在 Markdown 模式下運行單元格會將 Markdown 呈現為文本。

可以把notebook看作有兩種模式:一種是編輯模式,另一種是運行模式

編輯模式:我們可以在單元格內進行編輯

運行模式:就是編輯之後的代碼或者是文檔運行之後的模式,主要為了方便使用我們的一些快捷鍵,比如按F據可以全局搜索,按A就可以在當前行的的上面創建新的一行,按B則相反

編輯模式轉到運行模式:可以運行enter+shift或者是正方形左邊的那個按鈕,或者是編輯到一半的時候想要退出,按一下ESC

運行模式轉編輯模式:滑鼠移動到對應的運行單元格點擊一下就可以

工具欄

從左側開始,工具欄上的其他控制項是:

  • 軟盤符號表示「保存」。請記得保存 notebook!
  • + 按鈕用於創建新的單元格
  • 然後是用於剪切、複製和粘貼單元格的按鈕。
  • 運行、停止、重新啟動內核
  • 單元格類型:代碼、Markdown、原始文本和標題
  • 命令面板(見下文)
  • 單元格工具欄,提供不同的單元格選項(例如將單元格用作幻燈片)

代碼單元格

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

Markdown 單元格

單元格也可用於以 Markdown 編寫的文本。Markdown 是格式化語法,可加入鏈接、將文本樣式設為粗體或斜體和設置代碼格式。像代碼單元格一樣,按 Shift + EnterCtrl + Enter 可運行 Markdown 單元格,這會將 Markdown 呈現為格式化文本。加入文本可讓你直接在代碼旁寫出敘述性文檔,以及為代碼和思路編寫文檔

標題

要編寫標題,可在文本前放置井號,即 #(英文讀作 pound、hash 或 octothorpe)。一個 # 呈現為 h1 標題,兩個 # 是 h2 標題,依此類推。#號越多字體越小

鏈接

鏈接

要在 Markdown 中添加鏈接,請在文本兩側加上方括弧,並在 URL 兩側加上圓括弧,例如[百度](baidu.com) 表示指向百度的鏈接。

代碼

要創建代碼塊,請另起一行並用三個反撇號(一般在鍵盤數字 1 左邊)將文本包起來:

```

import numpy

```

數學表達式

在 Markdown 單元格中,可以使用 LaTeX 符號創建數學表達式。

notebook 使用 MathJax 將 LaTeX 符號呈現為數學符號。要啟動數學模式,請在 LaTeX 符號兩側加上美元符號(例如 $y = mx + b$),以創建內聯的數學表達式。對於數學符號塊,請使用兩個美元符號:

此功能的確很有用,因此,如果你沒有用過 LaTeX,請閱讀這篇入門文檔,它介紹了如何使用 LaTeX 來創建數學表達式。

https://www.zhihu.com/video/934463597367660544

更多參考:How IPython and Jupyter Notebook work

推薦閱讀:

誤刪除pycharm項目中的文件,如何恢復?
如何優雅的安裝Python的pandas?
如何讓自己的 python 代碼更有逼格?
跟黃哥學python之類__call__方法
Python環境下的8種簡單線性回歸演算法

TAG:Python |