CDA字幕組 編譯整理
本文為 CDA 數(shù)據(jù)分析師原創(chuàng)作品拣技,轉(zhuǎn)載需授權(quán)
毋庸置疑辛臊,Python是用于數(shù)據(jù)分析的最佳編程語(yǔ)言,因?yàn)樗膸?kù)在存儲(chǔ)、操作和獲取數(shù)據(jù)方面有出眾的能力帜篇。
在PyData Seattle 2017中糙捺,Jake Vanderplas介紹了Python的發(fā)展歷程以及最新動(dòng)態(tài)。在這里我們把內(nèi)容分成上下兩篇笙隙,在上篇給大家?guī)?lái)了Python的發(fā)展歷程(
為什么說(shuō)Python是數(shù)據(jù)科學(xué)的發(fā)動(dòng)機(jī)(一)發(fā)展歷程洪灯。下篇將給大家介紹Python中的一些重要工具。
主講人:
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ì)算。此外假消,他是許多開(kāi)源Python項(xiàng)目的維護(hù)者和頻繁貢獻(xiàn)者柠并,包括scikit-learn、scipy富拗、altair等臼予。
CDA字幕組該講座視頻進(jìn)行了漢化,附有中文字幕的視頻如下:
針對(duì)不方面開(kāi)視頻的小伙伴啃沪,CDA字幕組也貼心的整理了文字版本粘拾,如下:
Python是如何成為了數(shù)據(jù)科學(xué)的發(fā)動(dòng)機(jī)?_騰訊視頻
下面我想快速瀏覽一下PyData社區(qū)的發(fā)展過(guò)程创千。
當(dāng)中有些工具可能你使用過(guò)缰雇。如果你剛接觸這個(gè)社區(qū),你可能沒(méi)用過(guò)這些工具追驴。我將簡(jiǎn)單的總結(jié)一下我認(rèn)為在PyData中械哟,如今十分重要的工具。
安裝
安裝方面我推薦使用Conda殿雪。
基本上Conda是一個(gè)跨平臺(tái)的軟件包管理系統(tǒng)暇咆,類(lèi)似于apt-get、yum丙曙、homebrew或者M(jìn)AC端口爸业。但工作方式類(lèi)似在Linux、OSX或Windows上運(yùn)行亏镰。你能夠安裝類(lèi)似的軟件包扯旷,只需輕輕一點(diǎn)或者一個(gè)命令行參數(shù)。
它有兩種形式索抓,一個(gè)是只包括安裝程序的Mini Conda钧忽。另一個(gè)是Conda某抓,包括安裝程序以及數(shù)百個(gè)包。
我推薦Mini Conda惰瓜,更容易上手,下載下來(lái)為25M汉矿。首先進(jìn)行安裝崎坊,然后通過(guò)命令行運(yùn)行,也可以通過(guò)圖形用戶界面運(yùn)行洲拇。之后Python與Conda連接奈揍,你已經(jīng)完全從自己系統(tǒng)的Python,或任何其他Python安裝中脫離出來(lái)赋续∧泻玻可以運(yùn)行如Conda安裝等命令,只需輸入你需要包的名字纽乱。
這是一個(gè)很棒的系統(tǒng)蛾绎。在2012年之前Conda還未問(wèn)世,那時(shí)使用Python要痛苦的多鸦列。特別是當(dāng)你試圖讓在座的人租冠,從各自的筆記本電腦中拿出工具。他們使用的操作系統(tǒng)各不相同薯嗤,有Mac顽爹、OS X和Windows系統(tǒng)。很慶幸我們不處在那個(gè)環(huán)境中了骆姐,那是黑暗的時(shí)代镜粤。
Conda另一個(gè)驚人之處是可以創(chuàng)建環(huán)境,可以在沙箱環(huán)境中嘗試新的東西玻褪。如果你執(zhí)行創(chuàng)建-n肉渴,指名字。我將這個(gè)命名為py2.7归园,這表明我需要的Python版本黄虱。一旦激活該環(huán)境,你將有一個(gè)全新的可執(zhí)行的Python庸诱,以及全新的一組核心包可執(zhí)行捻浦。
我常常使用,在我的計(jì)算機(jī)上大概有70或80個(gè)類(lèi)似項(xiàng)目桥爽。每當(dāng)我開(kāi)發(fā)一個(gè)scikit-learn包朱灿,我會(huì)切換到scikit-learn開(kāi)發(fā),然后在master中安裝钠四。接著在那兒進(jìn)行開(kāi)發(fā)工作盗扒。一旦讓我需要運(yùn)行代碼進(jìn)行工作跪楞,我會(huì)切換回Python3.6環(huán)境。你可以在不同Python版本中來(lái)回?zé)o縫切換侣灶,Conda是很強(qiáng)大的甸祭。
如果你知道pip的話,一定聽(tīng)過(guò)pip vs Conda的說(shuō)法褥影。pip是另一個(gè)安裝Python包的程序池户,它連接到Python包索引。兩者的區(qū)別在于凡怎,pip僅用于在任何環(huán)境中安裝Python包校焦;而Conda可以安裝任何包,你可以安裝node或R語(yǔ)言包统倒,你可以安裝任何東西寨典,但只能在Conda環(huán)境中安裝。
編程環(huán)境
關(guān)于編程環(huán)境房匆,安裝好了Conda之后耸成, 你可以再安裝Jupyter和Jupyter Notebook。這個(gè)是很強(qiáng)大的浴鸿,于2012年推出墓猎。
我第一次聽(tīng)說(shuō)該Notebook是在2012年的PyData會(huì)議上,當(dāng)時(shí)我在講解scikit-learn赚楚。我演講的時(shí)Fernando Perez在觀眾席中毙沾,他把我的整個(gè)演講輸入到Notebook中。演講結(jié)束后他向我走過(guò)來(lái)說(shuō)”嗨宠页,我是Fernando左胞。你知道Notebook嗎?"之后他給了我演講的IPython Notebook版本,從此之后我每次演講都會(huì)錄入Notebook举户,這太棒了烤宙。
你能夠做的是運(yùn)行Jupyter Notebook,然后得到基于Web的平臺(tái)俭嘁,類(lèi)似一個(gè)通過(guò)瀏覽器訪問(wèn)的系統(tǒng)文件躺枕。你創(chuàng)建一個(gè)新的Notebook,然后獲得一個(gè)可以運(yùn)行代碼接口供填。在這兒你可以嘗試不同的東西拐云,可以嵌入圖形內(nèi)聯(lián),可以利用Notebook做很多事情近她。
最近我出版了《Python的數(shù)據(jù)科學(xué)手冊(cè)》叉瘩。整個(gè)是用Jupyter Notebook的形式編寫(xiě)的,這幾乎相當(dāng)于一個(gè)發(fā)布平臺(tái)粘捎。如果你不想買(mǎi)書(shū)的話薇缅,可以去我的github主頁(yè)危彩,所有的Notebook都在那兒。如果為我孩子的大學(xué)基金盡一份力泳桦,你也可以去買(mǎi)書(shū)汤徽。(全場(chǎng)笑)
有一個(gè)JupyterLab項(xiàng)目,類(lèi)似Jupyter Notebook的迭代灸撰。這相當(dāng)于把Notebook帶到未來(lái)泻骤,當(dāng)中包括完整的IDE文本編輯器和文件瀏覽器。我很期待JupyterLab給我們社區(qū)帶來(lái)的成果梧奢。這幾個(gè)月,我所有的工作都會(huì)在JupyterLab中進(jìn)行演痒,這是一個(gè)非城坠欤酷的項(xiàng)目。
數(shù)值計(jì)算
什么是數(shù)值計(jì)算(numerical computation)?
如果你想快速的進(jìn)行numerical和Python鸟顺,一切都取決于NumPy惦蚊。
如果你使用pandas使用scikit-learn,如果使用任何這些庫(kù)讯嫂,它們往往是在Numpy的基礎(chǔ)上蹦锋。你可以安裝Numpy,在Numpy中可以創(chuàng)建數(shù)組欧芽,可以有效的進(jìn)行互動(dòng)莉掂。因此你能夠創(chuàng)建數(shù)組,并進(jìn)行元素操作千扔。
如果進(jìn)行X乘以2憎妙,實(shí)際上該數(shù)組上的每個(gè)元素均要乘以2。如果把一個(gè)Python列表乘以2曲楚,那么整個(gè)列表的長(zhǎng)度都乘以2厘唾,然后加上所有多余的元素。
Python的初衷不是用來(lái)進(jìn)行數(shù)據(jù)科學(xué)的龙誊,而是出于其他目的抚垃。因此我們?cè)赑ython上添加了很多數(shù)據(jù)科學(xué)工具。
你可以處理線性代數(shù)趟大,取隨機(jī)矩陣的奇異值分解鹤树,還可以進(jìn)行隨機(jī)數(shù)生成,這邊還有一些正態(tài)隨機(jī)數(shù)逊朽,我們還可以求快速傅立葉變換魂迄。
這種類(lèi)型的核心數(shù)值運(yùn)算很多都是在Numpy中實(shí)現(xiàn)的,而且完成的很高效惋耙。
其中的一個(gè)例子是捣炬,如果你之前使用如 C熊昌、Fortran或者C#等編譯式語(yǔ)言,你可能會(huì)習(xí)慣手動(dòng)完成湿酸。如果要把數(shù)組的數(shù)字乘以2婿屹,再加1,你可能會(huì)寫(xiě)一個(gè)這樣的循環(huán)推溃,如果你寫(xiě)C代碼的話你會(huì)這么做昂利。
但在Python中這非常慢,對(duì)1千萬(wàn)個(gè)值進(jìn)行基礎(chǔ)算術(shù)需要6秒铁坎。這歸結(jié)與很多原因蜂奸,基本原因在于Python是解釋和動(dòng)態(tài)型的。
但如果使用Numpy硬萍,你可以使其更為簡(jiǎn)潔扩所。從而完成的更快,只需60毫秒而不是6秒朴乖。原理在于Numpy數(shù)組了解值的類(lèi)型祖屏,因此它推動(dòng)這些循環(huán)分解成編譯代碼,當(dāng)中類(lèi)型推斷不需要進(jìn)行多次买羞,而只需進(jìn)行一次袁勺。
因此每次你想進(jìn)行快速numerical和Python,考慮一下向量化畜普。如果在大型數(shù)據(jù)數(shù)組上編寫(xiě)循環(huán)期丰,存在更快的方法來(lái)實(shí)現(xiàn)代碼。
標(biāo)注數(shù)據(jù)
我們說(shuō)過(guò)了pandas是如何開(kāi)創(chuàng)了PyData時(shí)代吃挑,pandas庫(kù)基本上在Python上實(shí)現(xiàn)了數(shù)據(jù)框和關(guān)系運(yùn)算符咐汞。
這類(lèi)似于Numpy的數(shù)組,在這些密集數(shù)組你有類(lèi)型數(shù)據(jù)儒鹿,但數(shù)據(jù)框具有標(biāo)記列和標(biāo)記指數(shù)化撕。你可以用Python的索引語(yǔ)法在數(shù)據(jù)框中添加列,你還可以用無(wú)縫的方式從磁盤(pán)中加載數(shù)據(jù)约炎,從而自動(dòng)推斷所有列的類(lèi)型植阴。如果你在磁盤(pán)上有數(shù)據(jù) 想把數(shù)據(jù)載入Python空間,那么pandas是不二之選圾浅。
Numpy中還有l(wèi)oadtxt以及genfromtxt掠手,有人用過(guò)genfromtxt嗎?那太可怕了,你絕對(duì)不會(huì)想用狸捕。pandas基本上可以取代這些喷鸽。
你還可以進(jìn)行有趣的SQL操作,比如分組操作灸拍,著很快速做祝。在這兒我們有許多ID砾省,還有許多值。我想對(duì)ID進(jìn)行分組混槐,取相同ID對(duì)相同ID的值進(jìn)行求和编兄。你會(huì)得到一個(gè)數(shù)據(jù)框,獲得想要的答案声登。這些你無(wú)法在SciPy時(shí)代的工具中實(shí)現(xiàn)狠鸳,這是pandas提供的是2010年的新事物,所以是pandas是很棒的悯嗓。
可視化領(lǐng)域
如果在Python中看可視化件舵,你可能會(huì)想到matplotlib。
這是因?yàn)閙atplotlib久經(jīng)考驗(yàn)脯厨,從2002年人們就在用它铅祸。使用哈勃太空望遠(yuǎn)鏡的空間望遠(yuǎn)鏡科學(xué)研究所,在2004俄认、2005年在當(dāng)中投入了大量資源。你可以用它做任何事情洪乍。
看起來(lái)很像MATLAB眯杏,如果用過(guò)你可能很熟悉,如今很多人把它視為bug壳澳,當(dāng)時(shí)它被創(chuàng)造出來(lái)絕對(duì)是一個(gè)特征岂贩。
SciPy生態(tài)系統(tǒng)得以發(fā)展的原因在于,它能夠在MATLAB和Python之間無(wú)縫切換巷波。人們很容易出于API或其他原因抨擊matplotlib萎津。但是我們應(yīng)該從歷史的角度來(lái)看,如果沒(méi)有matplotlib的API抹镊,我們是不會(huì)走到今天的锉屈。
如果你想要做一些更復(fù)雜的事情,那我會(huì)越過(guò)matplotlib垮耳。如果想做數(shù)據(jù)框的數(shù)據(jù)可視化颈渊,pandas有很好的繪圖程序。你可以生成matplotlib繪圖终佛,但是不需要matplotlib API俊嗽。取一個(gè)數(shù)據(jù)框,比如data.plot.scatter铃彰,制定想進(jìn)行散點(diǎn)的兩個(gè)列名绍豁,則能夠得出你想要的圖,而不需要調(diào)整軸的標(biāo)簽牙捉。
Seaborn是一個(gè)類(lèi)似的包竹揍,這是用于統(tǒng)計(jì)可視化的包敬飒。你可以做很復(fù)雜的圖和一些代碼,這是值得一試的庫(kù)鬼佣。
除了matplotlib還有Bokeh驶拱。它有很多互動(dòng)功能,可以做很多不同類(lèi)型的圖晶衷。這里不做過(guò)多的介紹蓝纲。
類(lèi)似Bokeh的還有Plotly。它在瀏覽器中呈現(xiàn)圖晌纫,能夠進(jìn)行互動(dòng)的可視化税迷。
對(duì)于R語(yǔ)言使用者來(lái)說(shuō),我們正處于Python取代R的時(shí)代锹漱。R語(yǔ)言中超越Python的是ggplot庫(kù)箭养。我認(rèn)為目前在Python中沒(méi)有什么能超越這個(gè),有個(gè)類(lèi)似的是plotnie庫(kù)哥牍”厦冢基本上是給你ggplot的API從而得出matplotlib的圖。如果你是ggplot的粉嗅辣,而且想繼續(xù)用Python撼泛,這值得一試。雖然這還不是很成熟和完備澡谭,當(dāng)這很有前景愿题。
還有Altair庫(kù),在這里我不會(huì)介紹蛙奖∨诵铮可以在我其他關(guān)于可視化的演講中看到。
在Python中進(jìn)行可視化很復(fù)雜雁仲,這個(gè)幻燈片來(lái)自幾周前我在PyCon上的演講仔夺。
當(dāng)中的每個(gè)節(jié)點(diǎn)都是Python中用于可視化的庫(kù)。如果你想看我花40分鐘講這個(gè)圖攒砖,可以去YouTube看相關(guān)視頻囚灼。
數(shù)值算法
SciPy是用于這方面的包。一開(kāi)始SciPy是net-lib的添加祭衩,net-lib是進(jìn)行整合和插值優(yōu)化的一系列Fortran庫(kù)灶体,而且非常迅速高效。因此SciPy包括許多不同的子模塊掐暮,基本上Fortran操作的包裝蝎抽、運(yùn)行迅速。但基本上任何數(shù)值運(yùn)算SciPy都可以完成。
這里有一個(gè)例子樟结,我們?cè)趯?dǎo)入特殊的庫(kù)养交,這里是特殊的函數(shù),并且導(dǎo)入優(yōu)化的庫(kù)瓢宦。我們可以看到第一個(gè)貝塞爾函數(shù)的最小值碎连,這就是SciPy做的。
特別是如果你是一個(gè)物理學(xué)家SciPy是很出色的驮履,它擁有所有需要的程序鱼辙。
如果你想進(jìn)行機(jī)器學(xué)習(xí),scikit-learn值得一提玫镐。
由于其API倒戏,這是個(gè)很棒的庫(kù)。想象你有一些2D數(shù)據(jù)恐似,需要放入機(jī)器學(xué)習(xí)模型中杜跷。機(jī)器學(xué)習(xí)模型是線性擬合的一種高大上的方式。
如果你使用機(jī)器學(xué)習(xí)駕駛汽車(chē)矫夷,你手上有龐大的參數(shù)空間葛闷,需要擬合給數(shù)據(jù)的直線從而避免撞車(chē)。
如果想通過(guò)scikit-learn把數(shù)據(jù)擬合到直線上双藕,你可以使用該模型API淑趾。你創(chuàng)建一個(gè)模型擬合到數(shù)據(jù),然后在新的數(shù)據(jù)和圖上預(yù)測(cè)模型蔓彩。相當(dāng)于這個(gè)數(shù)據(jù)的隨機(jī)森林治笨。
如果你想使用不同模型驳概,只需改變模型的實(shí)現(xiàn)赤嚼。所以這里,我從一個(gè)隨機(jī)森林換成了支持向量機(jī)的回歸元顺又。你只需要改變上面的模型定義更卒,其余部分的代碼保持不變,這是scikit-learn的優(yōu)點(diǎn)稚照。
給你一個(gè)單一的API從而探索重要的機(jī)器學(xué)習(xí)算法蹂空,而不必寫(xiě)一大堆的樣板。這是scikit-learn的優(yōu)勢(shì)所在果录。我們實(shí)際上寫(xiě)了關(guān)于scikit-learn API的論文上枕。
如果你想用parallel的話,有一個(gè)問(wèn)世一兩年的庫(kù)稱(chēng)為Dask弱恒。
Dask很有意思辨萍,如果你使用Numpy的話,這是你會(huì)使用的工具返弹。取一個(gè)數(shù)組a锈玉,乘以4爪飘,記住把所有的元素乘以4。取最小值拉背,然后輸出师崎。
Dask所做的是,能夠讓你做相同的事情椅棺,但不需進(jìn)行實(shí)際的計(jì)算犁罩。保存了定義計(jì)算的任務(wù)圖值戳。當(dāng)你將數(shù)組乘以4時(shí)捌锭,它會(huì)保存起來(lái)構(gòu)建出類(lèi)似這樣的圖。
因此在底部我們得到數(shù)據(jù)和數(shù)組取视,在五個(gè)不同的核心 我們將數(shù)據(jù)乘以4鬼雀,取當(dāng)中的最小值顷窒。當(dāng)然最小值中的最小值,即為最小的源哩。Dask知道這些操作和聚合的關(guān)聯(lián)性鞋吉,最后你得到該任務(wù)圖,但沒(méi)有進(jìn)行任何計(jì)算励烦。
然后你可以把任務(wù)圖轉(zhuǎn)換成任何內(nèi)容谓着,可能是你計(jì)算機(jī)上的在多個(gè)內(nèi)核,可能是簇上的多個(gè)機(jī)器上坛掠,可能亞馬遜云或者Azure云上的內(nèi)容赊锚,最后你可以進(jìn)行計(jì)算。
在數(shù)據(jù)科學(xué)領(lǐng)域使用Dask可以實(shí)現(xiàn)很多有趣的內(nèi)容屉栓∠掀眩可以把Dask放到scikit-learn的后端,你可以關(guān)注一下友多,這很棒牲平,
如果你想優(yōu)化代碼的話,有一個(gè)有趣的項(xiàng)目問(wèn)世五六年了域滥,稱(chēng)為Numba纵柿。
將Python代碼編譯成LLVM字節(jié)碼,運(yùn)行的非称舸拢快而且是真正無(wú)縫隙的昂儒。當(dāng)你在寫(xiě)一個(gè)算法,當(dāng)中有for循環(huán)委可。我說(shuō)過(guò)for循環(huán)不太好渊跋,你應(yīng)該盡可能用Numpy。但有一些算法沒(méi)辦法簡(jiǎn)單的轉(zhuǎn)換矢量化代碼。
如果有這樣的代碼刹枉,每個(gè)人都使用斐波拉契叽唱。這需要2.7毫秒獲得1萬(wàn)個(gè)斐波拉契數(shù)。只需將數(shù)據(jù)添加到即時(shí)編譯器微宝,然后給代碼提供500倍的加速棺亭。實(shí)際上它經(jīng)過(guò)并分析所有的Python代碼,迅速的編譯成LLVM蟋软。之后你需要該函數(shù)可以獲取它的快速版本镶摘。
在此基礎(chǔ)上有很多很棒的項(xiàng)目,比如datashader項(xiàng)目岳守。這是一個(gè)連接Bokeh的可視化項(xiàng)目凄敢,在后端采用Numba,能夠?qū)?shù)十億點(diǎn)進(jìn)行快速的可視化湿痢。
我們來(lái)看看這些演示涝缝,datashader對(duì)十億個(gè)出租車(chē)上客情況進(jìn)行可視化。實(shí)時(shí)進(jìn)行滾動(dòng)譬重、縮放拒逮、以及渲染
這都基于后端的Numba。
另一種優(yōu)化代碼的方式是Cython臀规。
Cython不太一樣滩援,它是Python的超集合。它能讓你將Python編譯的到快速C代碼中塔嬉。
這里有個(gè)例子玩徊,我們拿出相同的fib函數(shù)2.73毫秒。如果我們?cè)贑ython中運(yùn)行谨究,當(dāng)中的%可以在Jupyter notebook中進(jìn)行恩袱。你會(huì)得到約10%的加速,這稍微快一些记盒。
它所做的是把Python代碼編譯到C語(yǔ)言代碼中憎蛤,然后運(yùn)行C語(yǔ)言代碼外傅,而不是Python代碼纪吮。
但要真正獲得Cython的優(yōu)勢(shì),你需要做的是增加些類(lèi)型萎胰∧朊耍看看這里的區(qū)別,我所做的是頂部為int n 比起a,b=0,1技竟,我輸入的是cdef int a=0 b=1”龋現(xiàn)在編譯器知道這些是整數(shù),它會(huì)優(yōu)化這些代碼。然后僅通過(guò)在Cython中運(yùn)行該代碼熙尉,加之一些格外的語(yǔ)法糖联逻。你會(huì)得到500倍的加速。
Cython是一個(gè)很出色的項(xiàng)目检痰,如果看到NumPy包归、SciPy、pandas铅歼、scikit-learn公壤、astropy、SymPy的源代碼椎椰∠梅基本上PyData生態(tài)系統(tǒng)中的所有numerical代碼,
其核心均使用Cython慨飘。所有這些工具都是建立Cython之上的确憨。
這就是你如何在這些庫(kù)中獲得快速numerix,這就是你如何包裝其他的C語(yǔ)言庫(kù)瓤的。
比如Lib缚态、SVM和scikit-learn,你使用Cython連接這些堤瘤。如果你使用任何超出基本Python的部分玫芦,試試Cython,因?yàn)檫@很有意思本辐。
這就是我對(duì)所有包的介紹桥帆,希望能有所幫助。我試圖在整個(gè)幻燈片加入引用慎皱,如果你想深入了解的話老虫,大部分的包都有很棒的網(wǎng)站,并附有相關(guān)教程茫多。
結(jié)語(yǔ)
在使用Python時(shí)請(qǐng)記住祈匙,Python并不是數(shù)據(jù)科學(xué)語(yǔ)言。
有時(shí)候這會(huì)導(dǎo)致事情變得復(fù)雜天揖,有時(shí)這意味著存在完成任務(wù)的許多不同方法夺欲。因?yàn)槊總€(gè)人都在這個(gè)他們喜愛(ài)的語(yǔ)言上創(chuàng)建自己的API,但我認(rèn)為這也是最大的優(yōu)勢(shì)今膊。因?yàn)槲覀兛梢詮暮芏嗖煌纳鐓^(qū)中吸取優(yōu)勢(shì)些阅,從而讓我們可以使用Python完成眾多超越數(shù)據(jù),數(shù)據(jù)科學(xué)的內(nèi)容斑唬。
回顧這些Python的不同發(fā)展階段是很有意思的市埋,但更有意思的是在于未來(lái)黎泣,2020年又會(huì)出現(xiàn)什么呢?
雖然在數(shù)據(jù)時(shí)代中,Python的獨(dú)立性仍存在很多挑戰(zhàn)缤谎。但我很確信抒倚,在未來(lái)的10年內(nèi)Python還是很有前景的。
因?yàn)樯鐓^(qū)中坷澡,人們與時(shí)俱進(jìn)的把其他地方學(xué)到的內(nèi)容
帶入到Python中衡便。因此我認(rèn)為直到2029年我們還會(huì)在使用Python,我們走著瞧吧洋访。
非常感謝大家镣陕!