Anaconda--筆記

介紹兩個對于數據分析師最為重要的工具,即 Anaconda 和 Jupyter notebook。

Anaconda 是一個包含數據科學常用包的 Python 發行版本。它基于 conda ——一個包和環境管理器——衍生而來。你將使用 conda 創建環境,以便分隔使用不同 Python 版本和不同程序包的項目。你還將使用它在環境中安裝、卸載和更新包。通過使用 Anaconda,處理數據的過程將更加愉快。

Jupyter notebook 是一種 Web 文檔,能讓你將文本、圖像和代碼全部組合到一個文檔中。它事實上已經成為數據分析的標準環境。Jupyter notebook 源自 2011 年的 IPython 項目,之后迅速流行起來。在本課程的第二節課中,你將使用 Jupyter notebook 進行分析工作。

首先學習 Anaconda。

Anaconda

歡迎學習本課程,如何使用 Anaconda 來管理 Python 所用的包和環境。Anaconda 能讓你在數據科學的工作中輕松安裝經常使用的程序包。你還將使用它創建虛擬環境,以便更輕松地處理多個項目。Anaconda 簡化了工作流程,并且解決了多個包和 Python 版本之間遇到的大量問題。

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

管理包

安裝了 Anaconda 之后,管理包是相當簡單的。要安裝包,請在終端中鍵入 conda install package_name。例如,要安裝 numpy,請鍵入 conda install numpy。
視頻地址
https://s3.cn-north-1.amazonaws.com.cn/u-img/conda_install.mp4

你還可以同時安裝多個包。類似 conda install numpy scipy pandas 的命令會同時安裝所有這些包。還可以通過添加版本號(例如 conda install numpy=1.10)來指定所需的包版本。

Conda 還會自動為你安裝依賴項。例如,scipy 依賴于 numpy,因為它使用并需要 numpy。如果你只安裝 scipy (conda install scipy),則 conda 還會安裝 numpy(如果尚未安裝的話)。

大多數命令都是很直觀的。要卸載包,請使用 conda remove package_name。要更新包,請使用 conda update package_name。如果想更新環境中的所有包(這樣做常常很有用),請使用 conda update --all。最后,要列出已安裝的包,請使用前面提過的 conda list

如果不知道要找的包的確切名稱,可以嘗試使用 conda search search_term 進行搜索。例如,我知道我想安裝 Beautiful Soup,但我不清楚確切的包名稱。因此,我嘗試執行 conda search beautifulsoup

管理環境

如前所述,你可以使用 conda 創建環境以隔離項目。要創建環境,請在終端中使用 conda create -n env_name list of packages。在這里,-n env_name 設置環境的名稱(-n 是指名稱),而 list of packages 是要安裝在環境中的包的列表。例如,要創建名為 my_env 的環境并在其中安裝 numpy,請鍵入 conda create -n my_env numpy

創建環境時,可以指定要安裝在環境中的 Python 版本。這在你同時使用 Python 2.x 和 Python 3.x 中的代碼時很有用。要創建具有特定 Python 版本的環境,請鍵入類似于 conda create -n py3 python=3conda create -n py2 python=2 的命令。實際上,我在我的個人計算機上創建了這兩個環境。我將它們用作與任何特定項目均無關的通用環境,以處理普通的工作(可輕松使用每個 Python 版本)。這些命令將分別安裝 Python 3 和 Python 2 的最新版本。要安裝特定版本(例如 Python 3.3),請使用 conda create -n py python=3.3

進入環境

創建了環境后,在 OSX/Linux 上使用 source activate my_env 進入環境。在 Windows 上,請使用 activate my_env

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

保存和加載環境

共享環境這項功能確實很有用,它能讓其他人安裝你的代碼中使用的所有包,并確保這些包的版本正確。你可以使用 conda env export > environment.yaml 將包保存為 YAML。命令的第一部分 conda env export 用于輸出環境中的所有包的名稱(包括 Python 版本)。

上圖中,你可以看到環境的名稱和所有依賴項及其版本。導出命令的第二部分 > environment.yaml 將導出的文本寫入到 YAML 文件 environment.yaml 中。現在可以共享此文件,而且其他人能夠用于創建和你項目相同的環境。

要通過環境文件創建環境,請使用 conda env create -f environment.yaml。這會創建一個新環境,而且它具有同樣的在 environment.yaml 中列出的庫。

列出環境

如果忘記了環境的名稱(我有時會這樣),可以使用 conda env list 列出你創建的所有環境。你會看到環境的列表,而且你當前所在環境的旁邊會有一個星號。默認的環境(即當你不在選定環境中時使用的環境)名為 root

刪除環境

如果你不再使用某些環境,可以使用 conda env remove -n env_name 刪除指定的環境(在這里名為 env_name)。

最佳做法

使用環境

對我有很大幫助的一點是,我的 Python 2 和 Python 3 具有獨立的環境。我使用了 conda create -n py2 python=2conda create -n py3 python=3 創建兩個獨立的環境,即 py2py3。現在,我的每個 Python 版本都有一個通用環境。在所有這些環境中,我都安裝了大多數常用的標準數據科學包(numpy、scipy、pandas 等)。

我還發現,為我從事的每個項目創建環境很有用。這對于與數據不相關的項目(例如使用 Flask 開發的 Web 應用)也很有用。例如,我為我的個人博客(使用 Pelican)創建了一個環境。

共享環境

在 GitHub 上共享代碼時,最好同樣創建環境文件并將其包括在代碼庫中。這能讓其他人更輕松地安裝你的代碼的所有依賴項。對于不使用 conda 的用戶,我通常還會使用 pip freeze在此處了解詳情)將一個 pip requirements.txt 文件導出并包括在其中。

了解更多信息

要詳細了解 conda 以及它如何融入到 Python 生態系統中,請查看這篇由 Jake Vanderplas 撰寫的文章:Conda myths and misconceptions(有關 conda 的迷思和誤解)。此外,如果你有多余精力,也可以參考這篇 conda 文檔

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容