為什么說 Python 是數(shù)據(jù)科學(xué)的發(fā)動(dòng)機(jī)(一)發(fā)展歷程(附視頻中字)

毋庸置疑监氢,Python是用于數(shù)據(jù)分析的最佳編程語言绎谦,因?yàn)樗膸煸诖鎯?chǔ)、操作和獲取數(shù)據(jù)方面有出眾的能力竭钝。

在PyData Seattle 2017中梨撞,Jake Vanderplas介紹了Python的發(fā)展歷程以及最新動(dòng)態(tài)。在這里我們把內(nèi)容分成上下兩篇香罐,先給大家?guī)砩掀?-Python的發(fā)展歷程卧波。

主講人:


Jake Vanderplas是華盛頓大學(xué)eScience研究所物理科學(xué)研究的負(fù)責(zé)人。該研究所負(fù)責(zé)跨學(xué)科項(xiàng)目庇茫,旨在支持科學(xué)領(lǐng)域在數(shù)據(jù)方面發(fā)現(xiàn)港粱。Jake的研究領(lǐng)域包括天文學(xué)、天體物理學(xué)旦签、機(jī)器學(xué)習(xí)以及可伸縮計(jì)算查坪。此外,他是許多開源Python項(xiàng)目的維護(hù)者和頻繁貢獻(xiàn)者宁炫,包括scikit-learn偿曙、scipy、altair等羔巢。

CDA字幕組該講座視頻進(jìn)行了漢化望忆,附有中文字幕的視頻如下:


https://v.qq.com/x/page/u0549he5n1o.html

針對(duì)不方面開視頻的小伙伴,CDA字幕組也貼心的整理了****文字版本****竿秆,如下:

Python究竟是怎樣成為了數(shù)據(jù)科學(xué)的發(fā)動(dòng)機(jī)?考慮到一開始它的初衷并非如此启摄。

Python的發(fā)展歷程

我想回顧一下Python的初衷和早期發(fā)展情況。

1990s: 腳本時(shí)代

在上世紀(jì)90年代幽钢,我認(rèn)為Python以及數(shù)據(jù)科學(xué)處于腳本時(shí)代歉备。這時(shí)的座右銘為"Python是Bash的替代品”

沒有人愿意用Bash編程匪燕,那么讓我們換成用Python吧蕾羊。這就是我們90年代的情況喧笔。

當(dāng)時(shí)有個(gè)從事科學(xué)領(lǐng)域的人,名叫David Beasley龟再。你可能通過《Python Cookbook》一書熟知他溃斋。在90年代他在一個(gè)研究實(shí)驗(yàn)室工作,他寫了一篇關(guān)于使用Python進(jìn)行科學(xué)計(jì)算的文章吸申。在文中他說:

科學(xué)家正在使用各種不同的工具,他們傾向于使用自行開發(fā)的軟件享甸,來實(shí)現(xiàn)自己的特定領(lǐng)域語言截碴。或者用命令行界面將它們組合到一起蛉威。

在本文中他提出日丹,為什么我們不使用Python把這些都組合到一起呢?

他提出一個(gè)他已進(jìn)行了4年的案例研究,當(dāng)中他把Python作為膠水蚯嫌,把許多其他的工具都粘到了一起哲虾。他寫這個(gè)庫在當(dāng)時(shí)影響力非常大,SWIG(simplified wrapper and interface generator)择示。這能夠解析整個(gè)Fortran或C代碼束凑,為你生成一個(gè)Python接口。因此為了驅(qū)動(dòng)代碼栅盲,你不必再去編寫Fortran和C語言汪诉。

許多早期的SciPy等工具都是建立在SWI上的,我對(duì)scikit-learn的第一個(gè)貢獻(xiàn)是用SWIG加上C++代碼谈秫。之后我們不再用SWIG而轉(zhuǎn)為Cython扒寄,但這是另一回事了。

2000s: SciPy時(shí)代

之后是2000年拟烫,我認(rèn)為2000年代是SciPy時(shí)代该编。

這時(shí)的座右銘是,Python是MATLAB替代品硕淑。

我看到觀眾中有些點(diǎn)頭贊同课竣,當(dāng)中有很多原因。如果看到2000年代早期有影響力并且發(fā)展SciPy堆棧的人群喜颁,可以在他們身上發(fā)現(xiàn)一些共同點(diǎn)稠氮。

例如John Hunter是Matplotlib的創(chuàng)始人,在2012年他去世前的幾周半开,他發(fā)表了很棒的SciPy演講隔披。

當(dāng)中他談到了Pre-Python,他有各種工作進(jìn)程的大雜燴Perl腳本C++寂拆。他編寫了MATLAB之后他厭倦了MATLAB奢米,開始把東西加載到GnuPlot上抓韩。這啟發(fā)他編寫了Matplotlib,這基本上是用Python編寫的MATLAB替代品鬓长。

同樣還有Travis Oliphant谒拴。他創(chuàng)建了continuum,在這之前他編寫了Numpy和SciPy項(xiàng)目涉波。

他說“在Python之前英上,我用過Perl。然后是MATLAB啤覆、shell苍日、scrip、Fortran以及C++庫等窗声。當(dāng)我發(fā)現(xiàn)Python時(shí)相恃,我真的很喜歡這個(gè)語言。但這個(gè)語言是萌芽階段 缺少很多庫笨觅。 我認(rèn)為我可以通過在Python中拦耐,連接低等級(jí)的庫和高等級(jí)的usage。從而在世界中獻(xiàn)出自己的一份力量见剩∩迸矗”這啟發(fā)了SciPy,SciPy取代了MATLAB炮温、Fortran火脉、shell、scrip柒啤。

同樣的如果你熟悉IPython項(xiàng)目倦挂、Jupyter項(xiàng)目,那你肯定知道Fernando Perez担巩,他創(chuàng)建了IPython方援。他也有類似五花八門的工具,C涛癌、C++犯戏、Unix(awk/sed/sh)Perl、IDL拳话、Mathematica先匪。

想到Python出現(xiàn)之前的科學(xué)就很可怕。接著Fernando創(chuàng)建了IPython項(xiàng)目弃衍,他想在Python中做類似IDL或類似Mathematica呀非,以便他能夠用一個(gè)簡(jiǎn)單的工具代替這所有。

在21世紀(jì)初出現(xiàn)了各種工具,相同的目標(biāo)是想取代MATLAB岸裙,取代所有組合的包猖败。若看到早期的代碼,會(huì)發(fā)現(xiàn)它們都包括可視化降允、計(jì)算以及殼的內(nèi)容恩闻。如果看一下Matplotlib,你仍然可以導(dǎo)入MATLAB的子模塊剧董。類似計(jì)算周期等部分在MATLAB幢尚、Matplotlib中仍然有計(jì)算,盡管現(xiàn)在很多已經(jīng)被移除翅楼。

如今我們熟知的庫如Matplotlib侠草、SciPy、IPython犁嗅,它們的目標(biāo)很清晰。社區(qū)一直在演變晤碘。

我認(rèn)為在SciPy時(shí)代的關(guān)鍵會(huì)議是SciPy大會(huì)褂微。SciPy大會(huì)驅(qū)動(dòng)了很多創(chuàng)新力,從2002年一直到如今园爷。在場(chǎng)我認(rèn)識(shí)的幾個(gè)人將出席下周的SciPy在奧斯汀的會(huì)議宠蚂,這是非常有意思的會(huì)議,如果有機(jī)會(huì)的話我建議你們參加童社。

2010s: PyData時(shí)代

在20世紀(jì)90年代腳本時(shí)代和SciPy時(shí)代之后求厕,我認(rèn)為2010年代是PyData時(shí)代。這時(shí)的座右銘應(yīng)為"Python是R語言的替代品”扰楼。

我認(rèn)為PyData社區(qū)在這點(diǎn)上做的很好呀癣。R語言還是有些做的很好且無法超越的地方。我認(rèn)為其中一個(gè)常規(guī)數(shù)據(jù)統(tǒng)計(jì)弦赖,還有一個(gè)是可視化项栏。有些人在致力于解決這些問題。

我認(rèn)為PyData時(shí)代的代表是Wes McKinney蹬竖,以及他的pandas沼沈。還有他的書《利用Python進(jìn)行數(shù)據(jù)分析》。

在書的序言中他這樣說道“還沒有任何一種工具能夠很好的處理我的一些需求币厕。例如:具有標(biāo)記軸的數(shù)據(jù)結(jié)構(gòu)列另;綜合時(shí)間序列功能;算術(shù)運(yùn)算和減少旦装;缺少數(shù)據(jù)的靈活移交页衙;合并和其他相關(guān)操作,我希望最好能夠在一種語言中完成這一切同辣】阶耍”

且能夠符合軟件開發(fā)的一般用途惭载,這啟發(fā)了pandas的誕生∠斐玻可以說若沒有pandas庫描滔,沒有Wes,今天我們不可能坐在這里踪古。在2009?2011年的時(shí)候含长,他辭掉了本來的工作,吃了2年拉面伏穆,這樣他就可以天天編寫pandas拘泞。如果你有天碰到了Wes,請(qǐng)感謝他枕扫。因?yàn)樗娴膶?duì)我們的社區(qū)做出了重大貢獻(xiàn)陪腌。

還有許多重要的軟件這個(gè)時(shí)期問世。

pandas第一個(gè)重大的發(fā)布是在2011年左右烟瞧。


scikit-learn在07年有發(fā)布一個(gè)早期的指南诗鸭,但主要的scikit-learn發(fā)布于2009年或201年。


Conda的packaging發(fā)布于2012年参滴,這真的改變了我使用Python的方式强岸,改變了人們做事的方式。

以及2012年的IPython項(xiàng)目砾赔,后來更名為Jupyter蝌箍。Jupyter項(xiàng)目真正推動(dòng)了我們處理代碼的方式,特別是在這個(gè)社區(qū)中暴心。

當(dāng)然當(dāng)中關(guān)鍵的會(huì)議是PyData妓盲。

2012年,為期一天的PyData研討會(huì)由谷歌舉辦专普,地點(diǎn)位于山景城本橙。這是我影響深刻的一次會(huì)議。這次會(huì)議上我第一次公開發(fā)表了關(guān)于Python的演講脆诉,當(dāng)中我對(duì)scikit-learn進(jìn)行了1小時(shí)的講解甚亭。從那之后我就著迷了,想盡可能多的參加這個(gè)會(huì)議击胜。

PyData遍布世界各地亏狰,這一系列會(huì)議促進(jìn)了數(shù)據(jù)科學(xué)的發(fā)展。數(shù)據(jù)科學(xué)與數(shù)據(jù)計(jì)算是不同的偶摔,之前SciPy時(shí)代則是圍繞這點(diǎn)的暇唾。當(dāng)然以上這些時(shí)代都是同時(shí)存在的。有人使用Python寫腳本,有人使用SciPy工具策州,有人使用PyData瘸味。

人們熱衷于使用Python。因?yàn)镻ython的直觀性够挂、美感旁仿、哲學(xué)性以及可讀性。Python從其他語言中得到很多轉(zhuǎn)換孽糖,因?yàn)樗帉懫饋砗苡腥た莞浴R虼巳藗冏龅木褪墙Y(jié)合其他工具,其他社區(qū)中習(xí)得的內(nèi)容办悟、編寫相應(yīng)的Python包尘奏。

Wes專門寫了pandas,因?yàn)樗胱龅絉語言對(duì)數(shù)據(jù)框的操作病蛉。John Hunter專門寫了Matplotlib炫加,因?yàn)樗胗肕ATLAB的方式進(jìn)行繪制,但不必使用MATLAB許可證铺然。

Python真的很擅長從其他工具其他領(lǐng)域攝取知識(shí)琢感,并把它們轉(zhuǎn)換到自己的空間內(nèi),然后進(jìn)行運(yùn)行探熔。

我們還開發(fā)了很多自己的東西,例如scikit-learn烘挫。在任何語言中诀艰,這都是考慮機(jī)器學(xué)習(xí)的首要方式。至少是如何連接機(jī)器學(xué)習(xí)饮六,如何進(jìn)行機(jī)器學(xué)習(xí)API其垄。我認(rèn)為沒有其他語言比scikit-learn更簡(jiǎn)潔,更深思熟慮的卤橄。

但我們必須認(rèn)識(shí)到在整個(gè)過程中绿满,Python并不是數(shù)據(jù)科學(xué)語言

Python是通用語言窟扑,我認(rèn)為Python的通用本質(zhì)在于其優(yōu)勢(shì)喇颁。你可以把它Python想象成瑞士軍刀

使用Python你可以做各種不同的事情嚎货。比如你可以做網(wǎng)頁編程橘霎,可以進(jìn)行Django,可以做后端殖属,也可以做前端姐叁。

但多年來越來越多的人都在用Python,這把瑞士軍刀變得復(fù)雜起來了。這么多的工具外潜,我們需要選擇用哪個(gè)記住順序原环,從而你能找到你想要的。這里的優(yōu)勢(shì)在于Python存在巨大的能力空間处窥,但缺點(diǎn)在于從哪兒下手嘱吗。

我想強(qiáng)調(diào)的是對(duì)于剛接觸Python的人群,他們說"我想馬上開始學(xué)習(xí)Python”碧库。但是他們會(huì)發(fā)現(xiàn)柜与,宇宙是如此巨大,有那么多的包嵌灰,有許多需要學(xué)的東西弄匕。還有許多人們傳遞的未記錄下來的知識(shí),很難進(jìn)入其中沽瞭。

我們已經(jīng)在本文中了解了Python的發(fā)展歷程迁匠,之后我們將帶來最新的發(fā)展動(dòng)態(tài),以及介紹一些熱門的庫驹溃,敬請(qǐng)期待哦城丧。

CDA字幕組 編譯整理
本文為 CDA 數(shù)據(jù)分析師原創(chuàng)作品,轉(zhuǎn)載需授權(quán)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末豌鹤,一起剝皮案震驚了整個(gè)濱河市亡哄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌布疙,老刑警劉巖蚊惯,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異灵临,居然都是意外死亡截型,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門儒溉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宦焦,“玉大人,你說我怎么就攤上這事顿涣〔郑” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵涛碑,是天一觀的道長舔痪。 經(jīng)常有香客問我,道長锌唾,這世上最難降的妖魔是什么锄码? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任夺英,我火速辦了婚禮,結(jié)果婚禮上滋捶,老公的妹妹穿的比我還像新娘痛悯。我一直安慰自己,他們只是感情好重窟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布载萌。 她就那樣靜靜地躺著,像睡著了一般巡扇。 火紅的嫁衣襯著肌膚如雪扭仁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天厅翔,我揣著相機(jī)與錄音乖坠,去河邊找鬼。 笑死刀闷,一個(gè)胖子當(dāng)著我的面吹牛熊泵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甸昏,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼顽分,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了施蜜?” 一聲冷哼從身側(cè)響起卒蘸,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翻默,沒想到半個(gè)月后缸沃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冰蘑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了村缸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祠肥。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖梯皿,靈堂內(nèi)的尸體忽然破棺而出仇箱,到底是詐尸還是另有隱情,我是刑警寧澤东羹,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布剂桥,位于F島的核電站,受9級(jí)特大地震影響属提,放射性物質(zhì)發(fā)生泄漏权逗。R本人自食惡果不足惜美尸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望斟薇。 院中可真熱鬧师坎,春花似錦、人聲如沸堪滨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袱箱。三九已至遏乔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間发笔,已是汗流浹背盟萨。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筐咧,地道東北人鸯旁。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像量蕊,于是被迫代替她去往敵國和親铺罢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容