python學習路線

2017-1-13 14:48

Python是一門通用的編程語言,在過去十年中被數據科學領域廣泛使用斋日。事實上劝术,Python在數據科學領域是僅次于R的第二熱門的編程語言甘穿。
本篇文章的主要目的在于向大家展示使用Python學習數據科學有多么的容易。你可能以為自己要先成為一名高級Python程序員胯陋,然后才能進行通常與數據科學相關的復雜任務蕊温,然而事實并非如此。Python附帶了很多有用的工具庫遏乔,它們可以在后臺為你提供強大的支持义矛。你甚至不需要知道程序在運行什么,你不必關心這些盟萨。唯一你真正需要知道的是凉翻,你需要執(zhí)行一些特定的任務,而Python使這些任務變得相當簡單捻激。

配置數據科學所需的Python環(huán)境
無論你使用的電腦是Mac還是Windows制轰,我都建議你下載一個免費的能夠讓你輕松訪問盡可能多的有用模塊的Python發(fā)行版本。
我試用了一些Python的發(fā)行版本胞谭,在這里垃杖,我推薦大家使用Continuum Analytics提供的Anaconda。這個Python發(fā)行版本包含200多個工具庫丈屹。要理解Python中包调俘、模塊和庫的差異,請查閱這篇文章旺垒。
在你下載Anaconda的時候彩库,你需要選擇下載Python 2版本還是Python 3版本。我強烈建議你使用Python 2.17.12版本先蒋。截止到2016年底骇钦,絕大多數的非計算機科學的Python用戶都使用了這個Python版本。它能夠出色地完成數據科學任務竞漾,比Python 3更容易學習眯搭,而且像GitHub這樣的網站中有數百萬的Python腳本和代碼片段,可供大家參考业岁,生活會變得更加容易鳞仙。
Anaconda也附帶了Ipython編程環(huán)境,建議大家使用叨襟。安裝Anaconda后,只需要導航到Jupyter筆記本并開啟程序幔荒,就可以在Web瀏覽器中打開IPython糊闽。Jupyter筆記本的程序會自動啟動Web瀏覽器中的應用程序梳玫。
第二熱門語言:從入門到精通,Python數據科學簡潔教程

你可以參考這篇文章了解如何在Ipython筆記本中更改路徑右犹。
基礎知識學習
在你深入了解Python的數據科學庫之前提澎,你首先需要學習一些Python的基礎知識。Python是一門面向對象的編程語言念链。在Python中盼忌,對象既可以賦值給一個變量,也可以作為參數傳遞給一個函數掂墓。以下都是Python中的對象:數字谦纱、字符串、列表君编、元組跨嘉、集合、字典吃嘿、函數以及類祠乃。
Python中的函數與普通數學中的函數基本上是一致的——它接收輸入數據,對數據進行處理并輸出結果兑燥。輸出的結果完全取決于函數是如何被設計的亮瓷。另一方面,Python中的類是被設計為輸出其他對象的對象的原型降瞳。
如果你的目標是編寫快速嘱支、可復用、易于修改的Python代碼力崇,那么你必須使用函數和類斗塘。使用函數和類有助于保證代碼的高效與整潔。
現在亮靴,讓我們看看Python中有哪些可用的數據科學工具庫馍盟。
科學計算:Numpy與Scipy
Numpy是一個主要用于處理n維數組對象的Python工具包,而Scipy則提供了許多數學算法與復雜函數的實現茧吊,可用來擴展Numpy庫的功能贞岭。Scipy庫為Python添加了一些專門的科學函數,以應對數據科學中的一些特定任務搓侄。
為了在Python中使用Numpy(或其他任何Python庫)瞄桨,你必須首先導入對應的工具庫。
第二熱門語言:從入門到精通讶踪,Python數據科學簡潔教程

np.array(scores) 將一個列表轉換成一個數組芯侥。
當你使用普通的Python程序時——未使用任何外部擴展(例如工具庫)的Python程序——你只能受限地使用一維列表來存儲數據。但是,如果你使用Numpy庫來擴展Python柱查,你可以直接使用n維數組廓俭。(如果你想知道的話,n維數組是包含一個或多個維度的數組唉工。)
最開始就學習Numpy研乒,是因為在使用Python進行科學計算時Numpy必不可少。對Numpy的深入了解將有助于你高效地使用Pandas和Scipy這樣的工具庫淋硝。
數據再加工:Pandas
Pandas是數據再加工過程中使用的最為廣泛的工具雹熬。它包含為使數據分析更加快速便捷而設計的高級數據結構與數據操作工具。對于使用R語言進行統(tǒng)計計算的用戶谣膳,一定不會對DataFrame的變量名感到陌生竿报。
Pandas是Python成長為一個強大而高效的數據分析平臺的關鍵因素之一。
接下來参歹,我將向你展示如何使用Pandas處理一個小型數據集仰楚。
第二熱門語言:從入門到精通,Python數據科學簡潔教程

DataFrame是一個電子表格結構犬庇,包含一個有序的列集合僧界。每個列都可以有不同的變量類型。DataFrame既包含行索引臭挽,也包含列索引捂襟。
第二熱門語言:從入門到精通,Python數據科學簡潔教程

可視化:Matplotlib + Seaborn + Bokeh
Matlplotlib是Python中一個用于數據可視化的模塊欢峰。Matplotlib可使你輕松地繪制線形圖葬荷、餅狀圖、直方圖以及其他專業(yè)圖表纽帖。
你可以使用Matplotlib自定義圖表中的每個細節(jié)宠漩。當你在IPython中使用Matplotlib時,Matplotlib具備縮放懊直、平移等交互特性扒吁。Matplotlib在所有操作系統(tǒng)上均支持不同的GUI后端,同時室囊,它也可以將圖表導出為若干種常見的圖像格式雕崩,如PDF、SVG融撞、JPG盼铁、PNG、BMP尝偎、GIF等饶火。
第二熱門語言:從入門到精通,Python數據科學簡潔教程

Seaborn是一個基于Matplotlib的數據可視化工具庫,用來在Python中創(chuàng)建富有吸引力且內容翔實的統(tǒng)計圖表肤寝。Seaborn的主要特點在于牧挣,其僅使用相對簡單的命令就可以從Pandas數據中創(chuàng)建出復雜的圖表類型。我使用Seaborn繪制了下面這幅圖:
第二熱門語言:從入門到精通醒陆,Python數據科學簡潔教程

機器學習: Scikit-learn
機器學習的目標在于通過向機器(軟件)提供一些示例(如何執(zhí)行任務或者執(zhí)行什么無法完成任務)來教會機器執(zhí)行任務。
Python中有很多機器學習的工具庫裆针,然而刨摩,Scikit-learn是最受歡迎的一個。Scikit-learn建立在Numpy世吨、Scipy與Matplotlib庫之上澡刹。基于Scikit-learn庫耘婚,你幾乎可以實現所有的機器學習算法罢浇,如回歸、聚類沐祷、分類等等嚷闭。因此,如果你打算使用Python學習機器學習赖临,那么我建議你從學習Scikit-learn開始胞锰。
K近鄰算法可用于分類或回歸。下面這段代碼展示了如何使用KNN模型對鳶尾花數據集進行預測兢榨。
第二熱門語言:從入門到精通嗅榕,Python數據科學簡潔教程

第二熱門語言:從入門到精通,Python數據科學簡潔教程

其他的一些機器學習庫還有:
Theano
Pylearn2
Pyevolve
Caffe
Tensorflow
統(tǒng)計學:Statsmodels與Scipy.stats
Statsmodels和Scipy.stats是Python中兩個熱門的統(tǒng)計學習模塊吵聪。Scipy.stats主要用于概率分布的實現凌那。另一方面,Statsmodels則為統(tǒng)計學模型提供了類似于R的公式框架吟逝。包括描述統(tǒng)計學帽蝶、統(tǒng)計檢驗、繪圖函數以及結果統(tǒng)計在內的擴展功能均適用于不同類型的數據以及每一種估計器澎办。
下面的代碼展示了如何使用Scipy.stats模塊調用正態(tài)分布嘲碱。
第二熱門語言:從入門到精通,Python數據科學簡潔教程

第二熱門語言:從入門到精通局蚀,Python數據科學簡潔教程

正態(tài)分布是一種連續(xù)的輸入為實線上任何值的分布或函數麦锯。正態(tài)分布可通過以下兩個參數進行參數化:分布的均值μ以及方差σ2。
Web抓壤派稹:Requests扶欣、Scrapy與BeautifulSoup
Web抓取表示從網絡中獲取非結構化數據(通常為HTML格式),并將其轉換為便于分析的結構化格式數據的過程。
深受歡迎的用于Web抓取的工具庫有:
Scrapy
URl lib
Beautifulsoup
Requests
要從網站中爬取數據料祠,你需要了解一些HTML的基本知識骆捧。
這里有一個使用BeautifulSoup庫進行網絡爬取的示例:
import urllib2
import bs4
第二熱門語言:從入門到精通,Python數據科學簡潔教程

代碼beautiful = urllib2.urlopen(url).read();前往bigdataexaminer.com并獲取了網站對應的整個HTML文本髓绽。隨后敛苇,我將文本存儲在變量beautiful中。
我使用了urllib2來獲取url為網頁鏈接 的網站頁面顺呕,你也可以使用Requests做同樣的事情枫攀。這里有篇文章可以幫助你了解urllib2和Requests間的差別。
Scrapy與BeautifulSoup類似株茶。后端工程師Prasanna Venkadesh在Quora上解釋了這兩個工具庫的差別:
"Scrapy是一個Web爬蟲来涨,或者說,是一個Web爬蟲框架启盛,你為Scrapy提供一個開始抓取操作的根URL蹦掐,然后你可以指定一些約束,例如要抓取多少個URL等等僵闯,這是一個用于Web抓取或爬取的完整框架卧抗。
而BeautifulSoup則是一個解析庫,它也可以出色地頁面爬取任務鳖粟,并允許你輕松地解析頁面中的某些內容颗味。但是,BeautifulSoup只會抓取你提供URL的頁面的內容牺弹。它不會抓取其他頁面浦马,除非你以一定方式手動地將頁面URL添加到循環(huán)中來。
簡單來說张漂,你可以用BeautifulSoup構建出與Scrapy類似的東西晶默。但是BeautifulSoup是一個Python庫,而Scrapy則是一個完整的框架航攒。"
結論
現在磺陡,你知道了Python的一些基礎知識以及這些工具庫的用途。是時候使用你所學到的知識來解決具體的數據分析問題了漠畜。你可以先處理結構化的數據集币他,之后可以解決那些復雜的非結構化數據分析問題了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末憔狞,一起剝皮案震驚了整個濱河市蝴悉,隨后出現的幾起案子,更是在濱河造成了極大的恐慌瘾敢,老刑警劉巖拍冠,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尿这,死亡現場離奇詭異,居然都是意外死亡庆杜,警方通過查閱死者的電腦和手機射众,發(fā)現死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晃财,“玉大人叨橱,你說我怎么就攤上這事《鲜ⅲ” “怎么了雏逾?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長郑临。 經常有香客問我,道長屑宠,這世上最難降的妖魔是什么厢洞? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮典奉,結果婚禮上躺翻,老公的妹妹穿的比我還像新娘。我一直安慰自己卫玖,他們只是感情好公你,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著假瞬,像睡著了一般陕靠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脱茉,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天剪芥,我揣著相機與錄音,去河邊找鬼琴许。 笑死税肪,一個胖子當著我的面吹牛,可吹牛的內容都是我干的榜田。 我是一名探鬼主播益兄,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼箭券!你這毒婦竟也來了净捅?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤辩块,失蹤者是張志新(化名)和其女友劉穎灸叼,沒想到半個月后神汹,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡古今,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年屁魏,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捉腥。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡氓拼,死狀恐怖,靈堂內的尸體忽然破棺而出抵碟,到底是詐尸還是另有隱情桃漾,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布拟逮,位于F島的核電站撬统,受9級特大地震影響,放射性物質發(fā)生泄漏敦迄。R本人自食惡果不足惜恋追,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望罚屋。 院中可真熱鬧苦囱,春花似錦、人聲如沸脾猛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猛拴。三九已至羹铅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間愉昆,已是汗流浹背睦裳。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撼唾,地道東北人廉邑。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像倒谷,于是被迫代替她去往敵國和親蛛蒙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內容

  • python基礎 為什么要學python渤愁? python在知名公司廣泛應用牵祟,谷歌、cia抖格、nasa诺苹、youtobe...
    b55e66e1710b閱讀 360評論 0 1
  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,478評論 6 427
  • 我想和著風聲咕晋,寫下屬于你的詩篇 我愛你的容顏 你不必譏笑我的膚淺 你的眼早已暴露了你的靈魂 你的皮囊掩蓋著你的骨血...
    漠塘閱讀 198評論 1 2
  • UI總結-tableView的基本用法 對于UITableView,我們有一些特殊的概念和術語收奔,比如說...
    Dear丶Musk閱讀 1,597評論 0 2
  • 最近參加了一場會計師事務所的實習掌呜,感覺獲益匪淺。 首先坪哄,我明白了以后要工作的性質和部分流程质蕉,因為只涉及到存貨的盤點...
    Scott1ee閱讀 244評論 0 0