如果希望快速開始使用 Python 處理資料科學相關的工作,建議大家直接安裝 Anaconda,然後使用 Anaconda 中整合的 Notebook 或 JupyterLab 工具來編寫程式碼。因為對於新手來說,先安裝官方的 Python 直譯器,再逐個安裝工作中會使用到的三方庫檔案會比較麻煩,尤其是在 Windows 環境下,經常會因為構建工具或 DLL 檔案的缺失導致安裝失敗,而一般新手也很難根據錯誤提示資訊採取正確的解決措施,容易產生嚴重的挫敗感。如果計算機上已經有 Python 直譯器環境了,也可以直接使用 Python 的包管理工具 pip 安裝 Jupyter,再根據實際工作的需要安裝三方庫,這種方式適合有一定經驗的使用者。
對於個人使用者來說,可以從 Anaconda 的官方網站下載它的“個人版(Individual Edition)”安裝程式,安裝完成後,你的計算機上不僅擁有了 Python 環境和 Spyder(類似於PyCharm的整合開發工具),還擁有了與資料科學工作相關的近200個工具包,包括我們上面提到 Python 資料分析三大神器。除此之外,Anaconda 還提供了一個名為 conda 的包管理工具,透過這個工具不僅可以管理 Python 的工具包,還可以用於建立執行 Python 程式的虛擬環境。
如上圖所示,可以透過 Anaconda 官網提供的下載連結選擇適合自己作業系統的安裝程式,建議大家選擇圖形化的安裝程式,下載完成後雙擊安裝程式開始安裝。安裝過程基本使用預設設定即可,完成安裝後,macOS 使用者可以在“應用程式”或“Launchpad”中找到名為“Anaconda-Navigator”的應用程式,執行該程式可以看到如下所示的介面,我們可以在這裡選擇需要執行的操作。
對於 Windows 使用者,建議按照安裝嚮導的提示和推薦的選項來安裝 Anaconda(除了安裝路徑,基本也沒有什麼需要選擇的),安裝完成後可以在“開始選單”中找到“Anaconda3”。
溫馨提示:可以選擇 Miniconda 作為 Anaconda 的替代品,Miniconda 只會安裝 Python 直譯器環境和一些必要的工具,其他的三方庫由使用者自行選擇安裝。其實我個人並不喜歡 Anaconda,因為它是給小白使用者使用的,我們有了 Python 以後完全可以按照自己的意願來安裝需要的三方庫。
如果希望使用 conda 工具來管理依賴項或者建立專案的虛擬環境,可以在終端或命令列提示符中使用 conda 命令。Windows 使用者可以在“開始選單”中找到“Anaconda3”,然後點選“Anaconda Prompt”來啟動支援 conda 的命令列提示符。macOS 使用者建議直接使用“Anaconda-Navigator”中的“Environments”,透過視覺化的方式對虛擬環境和依賴項進行管理。
-
版本和幫助資訊。
- 檢視版本:
conda -V
或conda --version
- 獲取幫助:
conda -h
或conda --help
- 相關資訊:
conda list
- 檢視版本:
-
虛擬環境相關。
- 顯示所有虛擬環境:
conda env list
- 建立虛擬環境:
conda create --name venv
- 指定 Python 版本建立虛擬環境:
conda create --name venv python=3.7
- 指定 Python 版本建立虛擬環境並安裝指定依賴項:
conda create --name venv python=3.7 numpy pandas
- 透過克隆現有虛擬環境的方式建立虛擬環境:
conda create --name venv2 --clone venv
- 分享虛擬環境並重定向到指定的檔案中:
conda env export > environment.yml
- 透過分享的虛擬環境檔案建立虛擬環境:
conda env create -f environment.yml
- 啟用虛擬環境:
conda activate venv
- 退出虛擬環境:
conda deactivate
- 刪除虛擬環境:
conda remove --name venv --all
說明:上面的命令中,
venv
和venv2
是虛擬環境資料夾的名字,可以將其替換為自己喜歡的名字,但是強烈建議使用英文且不要出現空格或其他特殊字元。 - 顯示所有虛擬環境:
-
包(三方庫或工具)管理。
- 檢視已經安裝的包:
conda list
- 搜尋指定的包:
conda search matplotlib
- 安裝指定的包:
conda install matplotlib
- 更新指定的包:
conda update matplotlib
- 移除指定的包:
conda remove matplotlib
說明:在搜尋、安裝和更新軟體包時,預設會連線到官方網站進行操作,如果覺得速度不給力,可以將預設的官方網站替換為國內的映象網站,推薦使用清華大學的開源映象網站。將預設源更換為國內映象的命令是:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
和conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
。如果需要換回預設源,可以使用命令conda config --remove-key channels
。 - 檢視已經安裝的包:
如果已經安裝了 Anaconda,macOS 使用者可以按照上面所說的方式在“Anaconda-Navigator”中直接啟動“Jupyter Notebook”(以下統一簡稱為 Notebook)。Windows 使用者可以在“開始選單”中找到 Anaconda 資料夾,接下來選擇執行資料夾中的“Jupyter Notebook”就可以開始資料科學的探索之旅。
對於安裝了 Python 環境但是沒有安裝 Anaconda 的使用者,可以用 Python 的包管理工具pip
來安裝jupyter
,然後在終端(Windows 系統為命令列提示符)中執行jupyter notebook
命令來啟動 Notebook,如下所示。
安裝 Notebook:
pip install jupyter
安裝三大神器:
pip install numpy pandas matplotlib
執行 Notebook:
jupyter notebook
Notebook 是基於網頁的用於互動計算的應用程式,可以用於程式碼開發、文件撰寫、程式碼執行和結果展示。簡單的說,你可以在網頁中直接編寫程式碼和執行程式碼,程式碼的執行結果也會直接在程式碼塊下方進行展示。如在編寫程式碼的過程中需要編寫說明文件,可在同一個頁面中使用 Markdown 格式進行編寫,而且可以直接看到渲染後的效果。此外,Notebook 的設計初衷是提供一個能夠支援多種程式語言的工作環境,目前它能夠支援超過40種程式語言,包括 Python、R、Julia、Scala 等。
首先,我們可以建立一個用於書寫 Python 程式碼的 Notebook,如下圖所示。
接下來,我們就可以編寫程式碼、撰寫文件和執行程式啦,如下圖所示。
如果使用 Python 做工程化的專案開發,PyCharm 肯定是最好的選擇,它提供了一個整合開發環境應該具有的所有功能,尤其是智慧提示、程式碼補全、自動糾錯這類功能會讓開發人員感到非常舒服。如果使用 Python 做資料科學相關的工作,Notebook 並不比 PyCharm 遜色,在資料和圖表展示方面 Notebook 更加優秀。這個工具的使用非常簡單,大家可以看看 Notebook 選單欄,相信理解起來不會有太多困難,在知乎上有一篇名為《最詳盡使用指南:超快上手Jupyter Notebook》的文章,也可以幫助大家快速認識 Notebook。
說明:Jupyter 官網上還有一個名為 JupyterLab 的工具,被稱之為“Next-Generation Notebook”,使用者介面較之 Notebook 更加友好,有興趣的讀者可以使用
pip install jupyterlab
命令來安裝這個工具,然後透過jupyter lab
來啟動它。
下面我為大家介紹一些 Notebook 的使用技巧,希望能夠幫助大家提升工作效率。
-
自動補全。在使用 Notebook 編寫程式碼時,按
Tab
鍵會獲得程式碼提示。 -
獲得幫助。在使用 Notebook 時,如果希望瞭解一個物件(如變數、類、函式等)的相關資訊或使用方式,可以在物件後面使用
?
並執行程式碼, 視窗下方會顯示出對應的資訊,幫助我們瞭解該物件,如下所示。 -
搜尋命名。如果只記得一個類或一個函式名字的一部分,可以使用萬用字元
*
並配合?
進行搜尋,如下所示。 -
呼叫命令。可以在 Notebook 中使用
!
後面跟系統命令的方式來執行系統命令。 -
魔法指令。Notebook 中有很多非常有趣且有用的魔法指令,例如可以使用
%timeit
測試語句的執行時間,可以使用%pwd
檢視當前工作目錄等。如果想檢視所有的魔法指令,可以使用%lsmagic
,如果瞭解魔法指令的用法,可以使用%magic
來檢視,如下圖所示。常用的魔法指令有:
魔法指令 功能說明 %pwd
檢視當前工作目錄 %ls
列出當前或指定資料夾下的內容 %cat
檢視指定檔案的內容 %hist
檢視輸入歷史 %matplotlib inline
設定在頁面中嵌入matplotlib輸出的統計圖表 %config Inlinebackend.figure_format='svg'
設定統計圖表使用SVG格式(向量圖) %run
執行指定的程式 %load
載入指定的檔案到單元格中 %quickref
顯示IPython的快速參考 %timeit
多次執行程式碼並統計程式碼執行時間 %prun
用 cProfile.run
執行程式碼並顯示分析器的輸出%who
/%whos
顯示名稱空間中的變數 %xdel
刪除一個物件並清理所有對它的引用 -
快捷鍵。Notebook 中的很多操作可以透過快捷鍵來實現,使用快捷鍵可以提升工作效率。Notebook 的快捷鍵又可以分為命令模式下的快捷鍵和編輯模式下的快捷鍵,所謂編輯模式就是處於輸入程式碼或撰寫文件狀態的模式,在編輯模式下按
Esc
可以回到命令模式,在命令模式下按Enter
可以進入編輯模式。命令模式下的快捷鍵:
快捷鍵 功能說明 Alt
+Enter
(Option
+Enter
)運行當前單元格並在下面插入新的單元格 Shift
+Enter
運行當前單元格並選中下方的單元格 Ctrl
+Enter
(Command
+Enter
)運行當前單元格 j
/k
、Shift
+j
/Shift
+k
選中下方/上方單元格、連續選中下方/上方單元格 a
/b
在下方/上方插入新的單元格 c
/x
複製單元格 / 剪下單元格 v
/Shift
+v
在下方/上方貼上單元格 dd
/z
刪除單元格 / 恢復刪除的單元格 l
/Shift
+l
顯示或隱藏當前/所有單元格行號 ii
/00
中斷/重啟Notebook核心 Space
/Shift
+Space
向下/向上滾動頁面 編輯模式下的快捷鍵:
快捷鍵 功能說明 Shift
+Tab
獲得提示資訊 Ctrl
+]
(Command
+]
)/Ctrl
+[
(Command
+[
)增加/減少縮排 Alt
+Enter
(Option
+Enter
)運行當前單元格並在下面插入新的單元格 Shift
+Enter
運行當前單元格並選中下方的單元格 Ctrl
+Enter
(Command
+Enter
)運行當前單元格 Ctrl
+Left
/Right
(Command
+Left
/Right
)游標移到行首/行尾 Ctrl
+Up
/Down
(Command
+Up
/Down
)游標移動程式碼開頭/結尾處 Up
/Down
游標上移/下移一行或移到上/下一個單元格 溫馨提示:如果記不住這些快捷鍵也沒有關係,在命令模式下按
h
鍵可以開啟 Notebook 的幫助系統,馬上就可以看到快捷鍵的設定,而且可以根據實際的需要重新編輯快捷鍵,如下圖所示。