Anaconda
為什麼選擇 Anaconda
我們知道 Python 是人工智能的首選語言。為了更好、更方便地使用 Python 來編寫深度學習相關程序,可以使用集成開發環境或集成管理系統,最流行的比如 PyCharm 和 Anaconda。本文我推薦使用 Anaconda。
之所以選擇 Anaconda,是因為 Anaconda 作為 Python 的一個集成管理工具,它把 Python 做相關數據計算與分析所需要的包都集成在了一起,我們只需要安裝 Anaconda 就行了。Anaconda 是一個打包的集合,裡面包含了 120 多個數據科學相關的開源包,在數據可視化、機器學習、深度學習等多方面都有涉及。不僅可以做數據分析,甚至可以用在大數據和人工智能領域。另外,安裝它後就默認安裝了 Python、IPython、Jupyter Notebook 和集成開發環境 Spyder 等等。總之一句話,安裝 Anaconda 讓我們省去了大量下載模塊包的時間,更加方便。
如何安裝 Anaconda
Anaconda 完全支持 Windows、macOS、Linux 三種平臺,版本基於 Python 3.6 或者 Python 2.7,推薦下載 3.6 版本。這裡給出 Anaconda 的下載地址:Anaconda 下載地址。
以 Windows 為例,根據你電腦是 32 位還是 64 位,選擇 Python 3.6,下載相應的 Anaconda。下載完成之後,直接運行 exe 文件,即可完成安裝,整個過程非常簡單。Anaconda 安裝成功之後,包含以下基本模塊:
如何管理 Python 科學包
Anaconda 的方便之處就在於它管理包非常方便。打開 Anaconda 的 Anaconda Prompt 模塊,使用 conda 包管理器命令即可輕鬆實現對 Python 科學包的管理。下面介紹幾個 conda 的基本命令。
顯示已安裝的科學包
在 Anaconda Prompt 中輸入:
conda list
安裝某科學包
在 Anaconda Prompt 中輸入:
conda install package_name
例如,要安裝 pandas,則輸入以下命令:
conda install pandas
更新某科學包
在 Anaconda Prompt 中輸入:
conda update package_name
卸載某科學包
在 Anaconda Prompt 中輸入:
conda uninstall package_name
Jupyter Notebook
Jupyter Notebook是一個交互式筆記本,支持運行 40 多種編程語言。其本質是一個 Web 應用程序,便於創建和共享文學化程序文檔,支持實時代碼、數學方程、可視化和 Markdown。用途包括數據清理和轉換,數值模擬,統計建模,機器學習等等。
在沒有 Jupyter Notebook 之前,我們只能在普通的 Python shell 或者在 IDE(集成開發環境)如 Spyder 中編寫代碼,然後在 Word 中寫文檔來說明你的項目。這個分立的過程很反鎖,通常是寫完代碼,再寫文檔的時候還要重頭回敲一遍代碼。但是 Jupyter Notebook 可以直接在代碼塊之間寫出敘述性文檔包括 LaTex 公式(Markdown 語法),而不需要另外編寫單獨的文檔。也就是說它可以將代碼、文檔等集中到一處,增加可讀性。如今,Jupyter Notebook 已迅速成為數據分析,機器學習的必備工具。因為它可以讓數據分析師集中精力向用戶解釋整個分析過程。
可喜的是, Anaconda 自帶了 Jupyter Notebook,不需要我們額外安裝,這也是我們選擇使用 Anaconda 的重要原因之一。接下來,我們將簡單介紹一些 Jupyter Notebook 的基本使用方法。
打開 Jupyter Notebook
Windows 下直接在 Anaconda 的工具包中就可以直接打開 Jupyter Notebook。如果是 Linux 的話,終端輸入 jupyter notebook 即可。
Jupyter Notebook 的主窗口顯示的路徑一般是 Jupyter Notebook 所處的路徑下(通常在你的用戶目錄下)。主界面如下所示:
若要創建一個新的 Notebook,只需鼠標左擊 New,在下拉選項中選擇一個你想啟動的 Notebook 類型即可,例如 Python 3。
新建之後,打開新的標籤,得到了一個空的 Notebook 界面。
Notebook 界面由以下幾個部分組成:
- notebook 名字;
- 主工具欄,包括保存、導出、重載、重啟內核等;
- 快捷鍵;
- Notebook 主要部分,Notebook 編輯區。
你可以將新建的 Notebook 重命名,點擊 File -> Rename,然後輸入新的名稱即可。
Notebook 編輯區由一個個單元(Cell)組成,每個 Cell 可以實現不同的功能。例如,第一個 cell 如下圖所示,以 In[ ] 開頭表示這是一個代碼單元。在代碼單元裡,你可以輸入任何代碼並執行。例如,鍵盤輸入 1+1,然後按 “Shift+Enter”,代碼將被運行,並顯示結果,由 out[] 為標誌。同時,切換到下一個的 cell 中。
如果代碼沒有返回值,例如 print 函數打印,則沒有 out[] 輸出。
Notebook 一個非常重要的特性是可以返回之前的 Cell,修改並重新運行,以此來更新整個文檔。例如,現在我們回到第一個 Cell 中,將輸入 1+1 改成 1+2,重新按 “Shift+Enter” 運行該單元,結果被立即更新成 3。當你想使用不同參數調試方程又不想運行整個腳本的時候,這條特性非常有用。然而,你也可以通過菜單欄 Cell -> Run all 來重新運行整個 Notebook。
cell 一般默認為代碼單元,如果我們想新建一個 Markdown 單元,可以選擇 Code -> Markdown 進行切換,或直接使用快捷鍵 M,切換為 Markdown 單元。
Markdown 單元完全遵循 Markdown 語法,我們可以建立標題或者代碼文檔說明,這樣就能讓解釋文本豐富起來了。
讓我們再深入地探討下 Markdown 單元類型,它同時也支持 HTML 代碼。你可以在你的 Cell 中創建更高級的樣式,比如添加圖片等等。舉個例子來說,如果你想在 Notebook 中添加 Jupyter 的圖標,尺寸為 100x100,並且放置在 Cell 左側,可以這樣編寫:
style="width:100px;height:100px;float:left">
運行該單元,效果如下:
你還可以直接調用本地圖片,須保證圖片所在路徑的準確性。例如:
![](img/../14.png)
運行該單元,同樣得到 Jupyter 的圖標:
除此之外,Notebook 的 Markdown 還支持 LaTex 語法。你可以在 Markdown 單元中按照 LaTex 語法規則寫方程式,然後直接運行,就可以看到結果。例如運行下面方程式:
`$$\frac{\
partial J}{\partial w}=1$$`運行結果如下:
導出功能
Notebook 另一個強大的功能就是導出功能,如以下多種形式:
- HTML
- Markdown
- ReST
- PDF(Through LaTex)
- Raw Python
如果導出成 PDF 格式,你甚至可以不使用 LaTex 就創建了一個漂亮的文檔。或者,你可以將你的 Notebook 保存為 HTML 格式,發佈到個人網站上。你還可以導出成 ReST 格式,作為軟件庫的文檔。
導出方式很簡單,選擇 File -> Download as -> …… 即可,如下所示:
值得一提的是,直接轉換為 PDF 格式經常會出現下列錯誤:
該錯誤提示沒有安裝 xelatex。所以,我們需要提前安裝 xelatex,方法是安裝 TexLive 套裝。
Windows 下, 從官網下載安裝程序 :install-tl-windows.exe,直接選擇 full 方式安裝。如果機器上已經安裝了 MiKTex,則先卸載,否則 TexLive 安裝後功能不可用。
Ubuntu 下,直接輸入以下命令:
sudo apt-get install texlive-full
Matplotlib 集成
Matplotlib 是用來畫圖的 Python 庫,與 Jupyter Notebook 結合使用時,效果更好。為了在 Jupyter notebook 中使用 Matplotlib,你需要告訴 Jupyter 獲取所有 Matplotlib 生成的圖形,並把它們全部嵌入到 Notebook 中。為此,只需輸入以下命令:
%matplotlib inline
這條語句執行可能耗費幾秒鐘,但是隻需要你打開 Notebook 時執行一次就好。讓我們作個圖,看看是怎麼集成的:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(10, 0.1)
y = x**2
plt.plot(x, y)
plt.show()
這段簡單代碼將繪出 y
=
x
2
y=x2
對應的二次曲線。運行這個 Cell,結果如下所示:
很明顯,圖直接嵌入到 Notebook 中,位於代碼下面。修改代碼,重新運行,圖形將自動同步更新。這是一個很好的特性,這樣可以清楚知道每段代碼究竟幹了什麼。
總結
本文主要介紹了 Anaconda 和 Jupyter Notebook。Anaconda 作為 Python 的一個集成管理工具,它把 Python 相關數據計算與分析科學包都集成在了一起,省去了各個安裝的麻煩,非常方便。而且,Anaconda 自帶了 Jupyter Notebook,Jupyter Notebook 是一個非常強大的工具,允許使用者為數據分析、教育、文件等任何你可以想到的內容創建漂亮的交互式文檔,已迅速成為數據分析、機器學習、深度學習的必備工具。本達人課的實戰代碼都將在 Jupyter Notebook 上實現。
閱讀更多 Farmer001 的文章