Python數據科學實踐 | 初步搭建數據科學工作環境

2021-02-19 狗熊會

⼤家好,本學期初,狗熊會成員討論了很久,到底應該送⼤家些什麼學(折)習(磨)禮物呢?熊⼤靈(腦)機(洞)⼀(大)動(開),要不我們整個Python的系列內容吧。R語千尋已經⼤受歡迎,沒有Python也不⾏呀。這時候,⼤家都沉默了!⼼⾥想的是,哪個倒黴蛋要接下這個任務呢。這時候熊⼤起身站起,指點江⼭,揮斥⽅瓊的說:政委就是你!我滿臉笑(淚)容(⽔)說:天將降⼤任於斯⼈也,必先苦其⼼志勞其筋⻣,學習Python!就這樣, 政委接受了這個任務,並成功的邀(壓)請(榨)了三位成員組成了「Python敢死隊」。本次內容是敢死隊成員:春豔同學與政委出品,歡迎品嘗。

Life is short, you need Python.                                              ——Bruce Eckel

隨著信息技術的⽇趨成熟,⽆處不在的信息感知和採集終端使⼈們⽇常⽣活中的各項活動以多種豐富多彩的形式被當做數據收集整合。數據,已經滲透到當今每⼀個⾏業領域,並且正以⼀種難以想像的驚⼈速度不斷膨脹。⽆⼈否認,在⽇新⽉異的現代社會,「⼤數據」時代已經悄然降臨。

由於其在多個⾏業和學科領域中的⾼度滲透,並且在不同專業領域的數據研究中表現出⾼度融合的趨勢,⼤數據已經成為包含計算機科學和統計學在內的多個學科領域的新研究⽅向。同時,由於在⼤數據⽅⾯的研究尚且存在諸多誤區,⼈們迫切地需要對「⼤數據」時代的新現象、 理論、⽅法、技術、⼯具和實踐進⾏系統的研究。因⽽,「數據科學」應運⽽⽣。

為了全⾯了解數據科學的⾏業狀況,2017年kaggle(互聯⽹上最著名的數據科學競賽平臺之⼀)⾸次進⾏了全⾏業調查。從超過16,000名從業者的詳盡答卷中,對於⽬前業內的發展趨勢,我們能夠窺得⼀⼆。調查數據表明,在眾多數據科學和機器學習的分析⼯具中,Python是數據科學家們最常⽤的語⾔。

圖1 數據科學家們⼯作中常⽤⼯具排名

Python 是⼀個⾼層次的結合了解釋性、編譯性、互動性和⾯向對象的腳本語⾔。在使⽤中主 要具有以下優勢:

● 設計嚴格——可讀性⾮常強、易於維護並且收到⼤量⽤戶的喜愛;

● 庫很豐富——能夠⼴泛應⽤於各種問題的處理場景並且節省編寫底層代碼的時間;

● 免費開源——具有⾼度可移植屬性,在各平臺上都能順利⼯作;

● 可擴展性——能夠調⽤C/C++的代碼以實現快速運⾏或對算法的加密;

● 可嵌⼊性——能夠被集成到C/C++從⽽給程序⽤戶提供腳本功能。

There should be one-- and preferably only one --obvious way to do it.                                 

—— Tim Peters

由於Python以「優雅」、「明確」、「簡單」為設計哲學,閱讀⼀個良好的Python程序就感覺像是在讀英語⼀樣,所以Python程序看上去總是簡單易懂,對初學者⾮常友好。因⽽以此為數據科學的⼊⻔⼯具是⾮常不錯的選擇。

圖2  同時使⽤Python和R的數據科學家認為應該選擇的數據科學⼊⻔⼯具排名

看到這⾥,你⼼動了嗎?是否想學習Python好⼀展拳腳,畢竟⼈⽣苦短,你需要Python。這⾥還是悄悄告訴你,數據科學家⼯作不是簡單的使⽤某⼀種語⾔,⽽是在⾃⼰的數據科學環境中,利⽤⾃⼰的數據思維實現數據科學實踐的過程。所以,在進⼊Python的學習之前,咱們最緊要的事情是構建能夠讓數據科學家輕鬆⼯作的數據科學環境。在這個環境中,你可以輕鬆使⽤各種數據科學的⼯具,讓你暢遊其中「⽆法⾃拔」。這就是下⾯要介紹的Anaconda數據科學套件。

確定將Python作為數據科學的⼊⻔⼯具之後,我們當然可以選擇下載官⽅的Python使⽤,但Python令⼈頭疼的環境問題以及多種需要安裝的⼯具包通常會成為初學者的阻礙。

不少初學者在Python的安裝階段就被紛⾄沓來的報錯信息搞得頭⽪發麻,即使最終靠著⽹絡上諸位「⼤神」的指示,踩著前⼈⾛過的腳印稀⾥糊塗地解決問題,也不免會費上好⼀番⼯夫, ⾛許多彎路。原本⾼漲的學習熱情也因此冷卻了⼤半,到時候這本書的名字就真是「Python從⼊⻔到放棄」了。

此時,Anaconda數據科學套件的出現,可謂是⼴⼤初學者的⼀⼤「福⾳」。

所謂「Anaconda套件」,通俗來講是⼀個打包的集合,⾥⾯預裝好了conda、某個版本的python、眾多packages以及科學計算⼯具等,所以也稱為Python的⼀種發⾏版。由於包含的內容⽐較豐富,因此Anaconda對存儲空間有⼀定的要求。⽽空間有限的⽤戶,可以選擇Miniconda,它只包含最基本的內容——python與conda,以及相關的必需依賴項。

圖3  Anaconda套件所包含的部分內容

Anaconda⾥除了Python外,⼀個⾮常重要的組成部分就是conda。conda是⼀個開源的軟體包管理和環境管理系統,能夠安裝多個版本的軟體包及其依賴關係。由於conda的設計理念在於把⼏乎所有的⼯具、第三⽅包都當做package對待,甚⾄包括Python和conda⾃身,因此conda打破了包管理和環境管理的約束,能夠實現各版本Python和package之間的輕鬆切換。這種強⼤的設計理念帶來了Anaconda套件的兩⼤優勢。

虛擬環境管理:在進⾏⽇常的數據分析⼯作時,對不同的項⽬我們可能會需要使⽤不同版本的Python以及不同版本的⼯具包。Python2和Python3在語法上的不兼容使我們必須⾯對版本上的衝突。⽽使⽤conda建⽴不同版本的虛擬環境能夠幫助我們很好地解決這⼀問題,對要求不同的項⽬進⾏隔離。

包管理:使⽤conda可以對多種⼯具包進⾏更新、安裝、卸載操作,並且Anaconda在安裝時已經預先集成了numpy、pandas、scipy、scikit-learn等在數據分析過程中常⽤的包。除此之外,conda還可以對⾮Python的包進⾏安裝管理,⽐如在新版的Anaconda中,我 們可以安裝R語⾔的集成開發環境Rstudio。對於想要同時使⽤Python和R的⼈來說,可真是美滋滋了。

圖4 Anaconda官⽹slogan截圖

Anaconda號稱是最受歡迎的Python和R數據分析集成環境。它通過對虛擬環境、⼯具包、 Python版本的管理,⼤⼤簡化了我們的⼯作流程。同時,Anaconda也是適⽤於企業級⼤數據 分析的Python⼯具。它所包含的多個數據科學相關的開源包⼴泛覆蓋了數據可視化、機器學 習、深度學習等多個⽅⾯。

⼀⾔以蔽之,選擇Anaconda數據科學套件將會是你「⼊坑」Python的良好開端。

下載Anaconda最簡單直接的⽅式當然是去官⽹。

官⽹上提供了Windows、Mac、Linux三種系統下的Anaconda安裝包,並且對每個系統都提供 了分別對應Python3.7和Python2.7的兩個版本。此處推薦安裝對應Python3.7的版本,畢竟官 ⽅已經宣布2.7的版本只會維護到2020年。不過在後⾯我們也會介紹,安裝哪個版本在本質上並沒有太⼤的區別,因為通過環境管理,我們可以很⽅便地切換運⾏時的Python版本。

圖5  Anaconda官⽹下載界⾯

然⽽,官⽹下載通常會遇到的⼀個問題是——速度慢到令⼈發指。尤其當我們花費⼤量的時間好不容易下載安裝好了,想要安裝或者更新其中的包時,如果收到由於速度過於緩慢⽽斷開連接從⽽安裝失敗的報錯信息,可⼜是⼀段⾟酸⾎淚史。

此時,國內的清華⼤學開源軟體鏡像站將會提供給你下載Anaconda的「新姿勢」。我們可以在這⾥選擇適宜⾃⼰系統的Anaconda版本進⾏下載安裝,相⽐之下速度會提升不少。

圖6  清華⼤學開源軟體鏡像站anaconda下載界⾯截圖

下載好安裝包之後,安裝的過程按照提示和說明完成即可。值得注意的是,在安裝路徑的選擇 中,請確保你的路徑中不包含中⽂、空格或其他⾮英語常⽤字符。否則誰也不能保證你在後續 的使⽤中不會被坑得暈頭轉向。

Windows系統下的安裝除了需要選擇安裝路徑外,還有兩個需要額外確認的地⽅。

● 是否要將Anaconda添加到PATH環境變量中?

● 是否要將下載的Anaconda中對應的Python版本設置為默認版本?

圖7 Windows系統下Anaconda安裝過程截圖

對第⼀個問題,建議不要勾選,即不添加。因為勾選後可能會對其他軟體產⽣⼲擾。對第⼆個問題,可以根據⾃⼰平時使⽤Python版本的實際情況進⾏勾選。

安裝完成後,打開cmd,輸⼊conda命令測試安裝結果。

圖8 Windows系統下Anaconda安裝結果測試截圖

成功安裝後會在【開始】菜單中發現Anaconda的⽂件夾,下拉後有⼏個應⽤:

Anaconda Cloud:管理公共或者私有python、jupyter notebook、conda、環境和 packages的地⽅,可以⽅便分享和追蹤。

Anaconda Navigtor:⽤於管理⼯具包和環境的可視化GUI(Graphical User Interface,簡 稱 GUI,圖形⽤戶界⾯),後續涉及的眾多管理命令也可以在 Navigator 中⼿⼯實現。

Anaconda Prompt: 也被稱為終端,⽤於管理⼯具包和環境的命令⾏界⾯,可以便捷的 操作conda環境。

Jupyter Notebook:基於web的交互式計算環境,可以編輯易於⼈們閱讀的⽂檔,⽤於展 示數據分析的過程。後⾯我們會具體重點介紹使⽤它!

IPython : Python 的交互式 shell,⽐默認的Python Shell 好⽤得多,⽀持變量⾃動補 全,⾃動縮進,⽀持 bash shell 命令,內置了許多很有⽤的功能和函數。

Jupyter Qtconsole:調⽤交互式命令臺,在很⼤程度上感覺像⼀個終端,但提供了許多 只能在GUI中使⽤的增強功能,例如內聯圖形,帶語法⾼亮的正確多⾏編輯,圖形化提示 等等。可以看作IPython的加強版。

Spyder:⼀個使⽤Python語⾔、開放原始碼的科學運算集成開發環境。Spyder可以跨平 臺,也可以使⽤附加組件擴充,⾃帶交互式⼯具以處理數據。

對Mac的⽤戶來說,安裝成功後在【Launchpad】中會出現Anaconda Navigtor的圖標,⽽ Mac系統⾃帶的終端即可⽤作Anaconda Prompt,打開終端,同樣輸⼊conda命令測試安裝 結果。

⽽上述提到的多個在Windows【開始】菜單中出現的其他應⽤,⽤戶可以選擇打開Anaconda Navigtor,在其中點擊進⼊,或者在終端中輸⼊相應的應⽤名稱命令打開應⽤。

圖9  Anaconda Navigtor主⻚界⾯

Navigtor和Prompt都是可⽤來管理環境和⼯具包的應⽤,區別在於:Navigtor是可視化的 GUI,對於不太擅⻓編程的新⼿來講⾮常友好;⽽Prompt則是命令⾏界⾯,對有⼀定編程基 礎的⼈來說⾮常親切。更簡單⼀點來講,如果偏愛直觀類似Web界⾯的選項選擇和⿏標點擊, 推薦使⽤Navigtor;如果偏愛敲代碼帶來的樂趣,Prompt會帶給你良好的體驗。

圖10 Anaconda Navigtor環境及⼯具包管理界⾯

據上圖能夠看出,Navigtor對於環境管理和⼯具包的管理⾮常直觀簡潔,點擊相應位置即可完 成環境及⼯具包的搜索、創建、刪除、更新等系列操作,因⽽在此處不對此進⾏詳細說明。值 得⼀提的是,Navigtor除了提供環境和包管理功能外,其中的學習和社區版塊也給我們提供了 很多的學習和互動資源,有興趣的⼩夥伴們不妨探索⼀番,或許能有意外的收穫。

圖11  Anaconda Navigtor學習版塊界⾯

好了,今天就講到這⾥。接下我們爭取每⼀周⻅⼀⾯,⼀起利⽤Python完成數據科學的學習。

PS:作業下載安裝Anaconda到你的電腦,並測試安裝成功。啟動Navigtor,並新建一個自己的數據科學環境名字為MyDS。 

今天就講到這裡,後續再繼續深入,希望大家把Python練習起來。

相關焦點

  • Python數據科學實踐 | 資料庫1
    大家好,基於Python的數據科學實踐課程又到來了,大家盡情學習吧。本期內容主要由智億同學與政委聯合推出。資料庫永遠是數據管理上最值得使用的工具。而把所收集的大量數據放入資料庫之後再處理是數據科學實踐項目中必不可少的一步。
  • 新書速遞 | Python數據科學實踐
    並且更深入的應該知道數據科學深刻的改變著科學研究的範式,商業社會的規則等等。那些講述數據科學之偉大,Python語言之優美,兩者結合之於實踐的文章已經有很多,這裡就不再贅述。我以自己的經歷來講講這方面的感受。初識Python。2011年,我有幸能在加州大學伯克利分校和一群有趣且瘋狂的人度過了美好的一年,當然還有我當時的女朋友Kino(如今的妻子)。
  • 使用Visual Studio 和 python 設置自己的數據科學工作區
    雷鋒網 AI 開發者按,新手在剛剛開始數據科學的學習時會遇到很多問題,而往往最簡單的問題也最容易犯錯。其中,管理 python 環境可能是一件讓人頭疼的事情。,搭建一個好的工作空間將讓你避免很多不必要的麻煩。
  • 數據科學中的Python與R
    雖然都依賴於大量的計算,但數據科學與計算機模擬不同,並非是基於一個已知的數據模型,而是用大量數據的相關性取代了因果關係和嚴格的理論和模型,並基於這些相關性獲得新的「知識」,數據科學的學習需要有很強的學習能力和動手實踐能力,同時也必須具有較好的計算機和數學基礎 。Drew Conway 的韋恩圖很好的說明了研究數據科學需要的技能。
  • 用R&Python在雲端運行可擴展數據科學
    那我們為什麼要把數據放在雲端處理呢?當你看到一臺筆記本電腦就配備64GB RAM時,不禁會問我們真的需要把數據送到雲端嗎?答案絕對是需要的,我們能找出一大堆理由來。下面就列出幾條:需要運行可擴展的數據科學:讓我們回到幾年前。在2010年,我進入一家跨國保險公司組建數據科學部門。其中的一項工作就是採購了一臺16GB RAM的伺服器。
  • Python數據科學計算庫的安裝和numpy簡單
    作者   Airy本文轉自AiryData,轉載需授權如何使用Python進行科學計算和數據分析,這裡我們就要用到Python的科學計算庫,今天來分享一下如何安裝Python的數據科學計算庫。數據科學優質課程推薦#2:統計入門課程篇歌手外科和猴姑,大數據告訴你白百何出軌後誰最慘想學習數據科學?
  • Python零基礎編程——起步並搭建環境
    程序就是你使用的電子產品內部的數據+邏輯算法。你手機的微信、頭條、抖音、快手、QQ等,你能看到的一切,都是程序。都是人造的科學。你也可以寫這些程序,只要你掌握了編程技術。而編程,就是編寫程序的過程。這個過程能讓你有創造世界的美妙感覺,又能讓你有毀滅世界的痛苦感覺。擴展:計算機是怎麼跑起來的?
  • 如何在計算機上配置數據科學開發環境
    網絡上有許多不同版本的python,但是對於數據科學來說,Anaconda Python發行版是使用最廣泛的。例如,如果您想在Google Cloud上建立一個數據科學環境,或者在使用Jupyter Notebooks進行深度學習,都需要一些Unix Shell知識。有時可能也會需要Windows虛擬機,但它並不常用。
  • 如何在計算機上配置數據科學開發環境?
    網絡上有許多不同版本的python,但是對於數據科學來說,Anaconda Python發行版是使用最廣泛的。 Anaconda的優點 Anaconda是一個包管理器,也是一個環境管理器,更是一個包含許多開放源碼包的集合的Python發行版。
  • Python數據科學實踐 | 統計建模1
    大家好,基於Python的數據科學實踐課程又到來了,大家盡情學習吧。本期內容主要由程茜與政委聯合推出。在實際數據科學項目中,繼數據清洗與整理、描述分析之後,要進行深入的分析,建模是必不可少的非常重要的環節。Python 中統計建模分析的核心模塊是Statsmodels。
  • 【數據可視化】數據科學工作的相關內容數據可視化
    2017年8月26日,全球最大的數據科學社群Kaggle發布了數據科學/機器學習業界現狀全行業調查的數據集。調查問卷數據從2017年8月7日~8月25日收集。受訪者囊括了來自50多個國家的16,716+位從業者。
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    二、課程目標 通過課程學習,可以理解機器學習的思維方式和關鍵技術;了解深度學習和機器學習在當前工業界的落地應用;能夠根據數據分布選擇合適的算法模型並書寫代碼,初步勝任使用Python進行數據挖掘、機器學習、深度學習等工作。
  • 手把手 | 數據科學速成課:給Python新手的實操指南
    只有對那些較寬鬆的統計模型我們有時會將Python和R結合使用,其中Python執行大量的數據處理工作和R進行統計建模。我的理念是通過實踐來學習,因此為了幫助新數據科學家使用Python進行數據科學研究,我們創建了Python數據科學(速成)課(Python Data Science (Crash) Course)。
  • Python數據科學實踐 | Conda的使用
    大家好,基於Python的數據科學實踐課程第二期又到來了,大家盡情學習吧。本期內容主要由春豔同學與政委聯合推出。上一節,我們主要介紹了如何界面化的使用Anaconda中的Navigtor(回顧戳這裡)。本節將會帶領大家進入更加真實的數據科學家工作環境。
  • Python高級編程、科學計算等多本數據分析書籍推薦!
    001 Python從入門到實踐    002 流暢的python    003 統計自然語言處理    004 計量經濟分析第6版    005 Machine Learning>045 數據可視化分析    046 決戰大數據    047 乾淨的數據:數據清洗入門與實踐    048 Spark快速大數據分析    049 Hadoop權威指南(第4版)
  • 面向數據科學的 Anaconda Python 入門 | Linux 中國
    Anaconda 是一個完備的、開源的數據科學軟體包,擁有超過 600 萬社區用戶。像很多人一樣,我一直努力加入到快速發展的數據科學領域。我上過 Udemy 的 R[1] 及 Python[2] 語言編程課,那時我分別下載並安裝了應用程式。
  • 數據科學探索(python 與 R 的比較)
    這一期主要應用python和R 這2種工具對某真實信貸數據進行分析,通過數據的讀取、清洗、探索、模型構建等,比較2種方法在機器學習數據科學上的實現
  • Python數據科學實踐 | 文本分析2
    大家好,基於Python的數據科學實踐課程又到來了,大家盡情學習吧。本期內容主要由智億同學與政委聯合推出。通過上周的推文(連結),我們已經掌握了文本分析的最基本的思路。這次推文主要學習如何利用Python實踐這些思路。
  • Python數據科學實踐 | 爬蟲1
    大家好,基於Python的數據科學實踐課程又到來了,大家盡情學習吧。本期內容主要由智億同學與政委聯合推出。前面幾章大家學習了如何利用Python處理與清洗數據,如何探索性數據分析,以及如何利用統計與機器學習方法進行建模。但是,很明顯我們忽視了一個最原始的問題:數據從何而來。沒有數據,這就好比,你學了十八般武藝,可是沒有讓你施展的地方一樣難受。
  • B站最強學習資源匯總(Python,數據科學,機器學習)
    強調在知識的廣度、深度和趣味性之間尋找最佳平衡點,在生動幽默中講述數據挖掘的核心思想、關鍵技術以及一些在其它相關課程和教科書中少有涉及的重要知識點,適合對大數據和數據科學感興趣的各專業學生以及工程技術人員學習。