0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么在數(shù)據(jù)科學(xué)領(lǐng)域Python比R更好

Wildesbeast ? 來源:AI前線 ? 作者:劉志勇 ? 2020-04-18 10:49 ? 次閱讀

經(jīng)常有讀者問我們,在數(shù)據(jù)科學(xué)領(lǐng)域里,到底是該選 Python 呢,還是選 R 更好?誠然,對(duì)于數(shù)據(jù)科學(xué)家來說,R 和 Python 都很重要。但是對(duì)于一個(gè)新人數(shù)據(jù)科學(xué)家來說,又該如何取舍呢?同時(shí)學(xué)習(xí) Python 和 R 也有些不切實(shí)際。作者 Tom Waterman 作為過來人,他是先學(xué)了 R,后來才學(xué)的 Python,他給我們列出了為什么 Python 比 R 更適合數(shù)據(jù)科學(xué)領(lǐng)域的四大理由。InfoQ 中文站翻譯并分享給大家。

我認(rèn)為,在數(shù)據(jù)科學(xué)領(lǐng)域,Python 比 R 更合適的理由主要有四個(gè)。

新人數(shù)據(jù)科學(xué)家都面臨著一個(gè)問題,而這個(gè)問題非常重要:我是應(yīng)該學(xué)習(xí) Python 呢,還是學(xué)習(xí) R?

問得好!這個(gè)問題真的非常重要。因?yàn)?,“男怕入錯(cuò)行,女怕嫁錯(cuò)郎”,要知道,學(xué)習(xí)第一門編程語言是需要耗費(fèi)數(shù)百個(gè)小時(shí)的。試圖都學(xué)這兩門編程語言是不切實(shí)際的,特別是當(dāng)你剛剛開始職業(yè)生涯的時(shí)候。

那么,你應(yīng)該做出怎樣的選擇呢?

根據(jù)我的經(jīng)驗(yàn),如果你選擇了 Python,我相信,你的職業(yè)生涯將會(huì)因此受益良多。

在我看來,對(duì)數(shù)據(jù)科學(xué)這一職業(yè)來說,Python 是更好的選擇,尤其是如果你剛剛起步的話。

我將給出四個(gè)理由,來說明為什么我認(rèn)為 Python 對(duì)你職業(yè)來說是更好的選擇,但我也要澄清一點(diǎn):我并不認(rèn)為 R 是一個(gè)糟糕的選擇。

選擇 R 并不會(huì)對(duì)你的工作機(jī)會(huì)產(chǎn)生什么負(fù)面影響,而是要取決于你的團(tuán)隊(duì),你甚至有可能會(huì)被要求學(xué)習(xí) R。事實(shí)上,F(xiàn)acebook 將 R 作為內(nèi)部調(diào)查工具的分析組件,而我們所有的數(shù)據(jù)科學(xué)基礎(chǔ)設(shè)施都支持這門語言。

也就是說,我相信,如果你學(xué)習(xí) Python 的話,你將會(huì)更快地成為一名實(shí)踐數(shù)據(jù)科學(xué)家,而且還能夠更好地在統(tǒng)計(jì)建模之外的重要領(lǐng)域?yàn)槟愕膱F(tuán)隊(duì)做出貢獻(xiàn)。

因此,學(xué)習(xí) Python 將會(huì)使你能夠?yàn)?a target="_blank">公司帶來更大的影響力,而你的職業(yè)生涯也將因此碩果累累。

理由一:無論如何,你可能得學(xué)習(xí) Python

大多數(shù)公司要求他們的數(shù)據(jù)科學(xué)家所做的并不僅僅是預(yù)測(cè)建模(即機(jī)器學(xué)習(xí))。至少,你可能需要維護(hù)為模型提供數(shù)據(jù)的數(shù)據(jù)管道,而這些數(shù)據(jù)管道很可能就是用 Python 構(gòu)建的。

目前,管道的行業(yè)標(biāo)準(zhǔn)是基于 Python 的 Airflow,而在 Facebook 上,我們使用的內(nèi)部 Python 工具基本上也是相同的。

事實(shí)上,據(jù)我估計(jì),在 Facebook,我們的數(shù)據(jù)科學(xué)家 100% 都會(huì)在每周使用 Python,而積極使用 R 的人可能只有 10% 左右。

因此,對(duì)你來說,如果選擇 Python 的話,可能會(huì)更有效率:雖然你一旦找到工作就可以避開 R,但不太可能會(huì)繞開 Python。

理由二:Python 更容易學(xué)習(xí)

要知道,成為可雇傭的人所需的時(shí)間非常重要,尤其是如果你是在大學(xué)以外的地方自學(xué)的話。

Python 以易學(xué)而聞名。在學(xué)過 Python 和 R 之后(雖然我對(duì) Python 方面更深入),我認(rèn)為,Python 的聲譽(yù)是當(dāng)之無愧的。

當(dāng)你開始使用統(tǒng)計(jì)建模之外的語言特性時(shí),Python 易學(xué)所帶來的好處尤為明顯。這些特性包括將項(xiàng)目打包用于分發(fā)、開發(fā)命令行界面、使用像 SQLAlchemy 這樣的對(duì)象關(guān)系映射(Object-relational mapping,ORM)為數(shù)據(jù)結(jié)構(gòu)建模等等。

若掌握 Python,將使你更容易精通這些特性,你的職業(yè)生涯也將因此受益。

理由三:Python 的社區(qū)更龐大

Python 是世界上最流行的編程語言之一,在 Stack overflow、Kaggle 甚至 Mediun 等網(wǎng)站都有龐大的社區(qū)。

因此,當(dāng)你不可避免地遇到連自己也無法解決的問題時(shí),你更有可能找到那些在你之前遇到過這個(gè)問題、尋求過幫助并得到解決方案的人。

這意味著你將花費(fèi)更少的時(shí)間來調(diào)試與系統(tǒng)的兼容性問題,而將更多的時(shí)間用于交付可為公司帶來影響的代碼。

理由四:使用 Python 部署模型更容易

最后,在職業(yè)生涯中,你可能會(huì)達(dá)到這樣的一個(gè)階段:你希望能夠?qū)⒛P蛯?shí)時(shí)提供給任何一個(gè)最終用戶。要解決這個(gè)問題,你需要構(gòu)建一個(gè)基于 REST 的 Web 應(yīng)用程序,使用 Python 的話,這件事就會(huì)變得很容易。

實(shí)際上,Python 擁有一些世界上最流行的 Web 應(yīng)用程序框架,即 Django 和 Flask。你公司的內(nèi)部部署工具更有可能就支持這些框架,而且相對(duì)來說不太可能會(huì)支持 R。

這些框架的流行也意味著它們得到了平臺(tái)即服務(wù)提供商(如 Heroku、Amazon Lightsail 等)的良好支持。有了這些框架,你將能夠在線發(fā)布你的個(gè)人項(xiàng)目,而所需的工作量僅相當(dāng)于在 R 中部署相同項(xiàng)目所需工作量的一小部分。

最重要的是,如果你足夠幸運(yùn),你的公司在自己的產(chǎn)品中已經(jīng)使用了 Python 框架,那么學(xué)習(xí) Python 就意味著你將有足夠的危機(jī)感,連接你自己的應(yīng)用內(nèi)跟蹤。若能夠自主為你的模型捕獲更多的特性,將會(huì)對(duì)你所能夠帶來的影響產(chǎn)生顯著的效果。

當(dāng)然,所有的決策都是需要權(quán)衡取舍的,選擇學(xué)習(xí) Python 而不是 R 也沒有什么不同。盡管我個(gè)人認(rèn)為 Python 對(duì)數(shù)據(jù)科學(xué)職業(yè)來說是更好的選擇,但 Python 的缺點(diǎn)也同樣值得考慮。

對(duì)我來說,Python 最大的缺點(diǎn)就是沒有與 RStudio 相當(dāng)?shù)墓ぞ?。Python 最有可比性的是 Jupyter Notebook,但我個(gè)人覺得 RStuduo 更好一些,因?yàn)樗哂袛?shù)據(jù)探索的功能。

作者注: 在寫完本文后,Marcelo Garcia 指出可以使用免費(fèi)的 Spyder 包作為 RStudio 的 Python 替代方案。但作者還沒有機(jī)會(huì)嘗試 Spyder,但是看起來很棒!

R 在學(xué)術(shù)界也非常流行,因此,R 中軟件包的文檔更有可能是直接引用學(xué)術(shù)研究。這些文檔對(duì)于從事研究“前沿”工作的數(shù)據(jù)科學(xué)家來說非常有用。

但我并不認(rèn)為 RStudio 的缺乏,就能足以否定 Python 的相對(duì)優(yōu)勢(shì)。而且,在數(shù)據(jù)科學(xué)學(xué)術(shù)界從業(yè)者也少得多,這使得 R 的研究相關(guān)優(yōu)勢(shì)對(duì)大多數(shù)數(shù)據(jù)科學(xué)家來說不那么重要了。

因此,盡管 R 有很多優(yōu)點(diǎn),但我相信如果你選擇學(xué)習(xí) Python,你的職業(yè)生涯將會(huì)受益匪淺。

最后,我認(rèn)為值得一提的是,我并不認(rèn)為學(xué)習(xí) R 就是個(gè)糟糕的選擇,只不過 Python 更可能是你職業(yè)生涯中的一個(gè)更好的選擇而已。要根據(jù)你的具體情況,學(xué)習(xí) R 對(duì)你來說也有可能更有意義。

不管你選擇學(xué)習(xí)哪種語言,你都不應(yīng)該覺得你永遠(yuǎn)不能改變主意。要知道,所有的編程語言的相似之處可要遠(yuǎn)遠(yuǎn)多于不同之處:學(xué)習(xí)第二門編程語言要比第一門編程語言容易得多。

實(shí)際上,我恰恰選擇的就是先學(xué)習(xí) R 的!因此,就算我現(xiàn)在建議將 Python 作為你職業(yè)生涯的更好選擇,但我也很難對(duì) R 發(fā)出太過強(qiáng)烈的警告。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1253

    瀏覽量

    69057
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1916

    瀏覽量

    34379
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84081
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學(xué)易用、豐富的庫和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)
    的頭像 發(fā)表于 08-01 15:27 ?789次閱讀

    Python建模算法與應(yīng)用

    Python作為一種功能強(qiáng)大、免費(fèi)、開源且面向?qū)ο蟮木幊陶Z言,在科學(xué)計(jì)算、數(shù)學(xué)建模、數(shù)據(jù)分析等領(lǐng)域展現(xiàn)出了卓越的性能。其簡(jiǎn)潔的語法、對(duì)動(dòng)態(tài)輸入的支持以及解釋性語言的本質(zhì),使得
    的頭像 發(fā)表于 07-24 10:41 ?257次閱讀

    cyw20721對(duì)cyw20706哪個(gè)更好

    請(qǐng)教下:cyw20721對(duì)cyw20706,傳輸音頻,那個(gè)有更好的特性呢
    發(fā)表于 03-01 08:44

    輻射RE整改:科學(xué)應(yīng)對(duì)輻射環(huán)境,建設(shè)健康未來?|深圳創(chuàng)達(dá)電子EMC a

    輻射RE整改:科學(xué)應(yīng)對(duì)輻射環(huán)境,建設(shè)健康未來?|深圳創(chuàng)達(dá)電子EMC近年來,輻射環(huán)境問題備受關(guān)注,為了構(gòu)建更加健康的未來,輻射RE整改成為當(dāng)務(wù)之急。本文將深入探討輻射RE整改的重要性,并逐步介紹相關(guān)
    發(fā)表于 02-23 09:48

    超級(jí)電容器電池更好嗎?

    超級(jí)電容器是一種新型的儲(chǔ)能器件,主要用于斷電后提供短期能量的后備電源,其能量密度介于普通電容和二次電池之間,同時(shí)具有高比容量和功率的特點(diǎn)。那超級(jí)電容器電池更好嗎?讓我們來從以下幾點(diǎn)看看超級(jí)電容器
    發(fā)表于 02-18 15:38

    超級(jí)電容器電池更好嗎?

    超級(jí)電容器是一種新型的儲(chǔ)能器件,主要用于斷電后提供短期能量的后備電源,其能量密度介于普通電容和二次電池之間,同時(shí)具有高比容量和功率的特點(diǎn)。那超級(jí)電容器電池更好嗎?讓我們來從以下幾點(diǎn)看看超級(jí)電容器
    發(fā)表于 01-06 16:33

    推薦幾個(gè)不錯(cuò)的Python

    作為一個(gè)在數(shù)據(jù)中心搬磚的邏輯開發(fā),日常不是僅僅簡(jiǎn)單的寫寫RTL就可以完事兒的。在數(shù)據(jù)中心,你可能連板卡都看不到,日常常打交道的,也就是PCIe。作為邏輯版本的生產(chǎn)者,出現(xiàn)問題往往需要自己有詳細(xì)的定位
    的頭像 發(fā)表于 12-16 11:05 ?466次閱讀
    推薦幾個(gè)不錯(cuò)的<b class='flag-5'>Python</b>庫

    python運(yùn)行環(huán)境的安裝和配置

    Python是一種非常流行的編程語言,廣泛應(yīng)用于科學(xué)計(jì)算、Web開發(fā)、人工智能等領(lǐng)域。為了能夠正常運(yùn)行Python程序,我們需要先安裝和配置Pyth
    的頭像 發(fā)表于 11-29 16:17 ?938次閱讀

    python軟件對(duì)電腦配置要求

    Python是一種流行的編程語言,它在許多不同的領(lǐng)域中被廣泛使用,例如網(wǎng)站開發(fā)、數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)等。對(duì)于使用Python的開發(fā)者來說,了解
    的頭像 發(fā)表于 11-29 14:58 ?8911次閱讀

    python第三方庫有哪些

    Python) NumPy 是 Python 中最重要且最常用的科學(xué)計(jì)算庫之一。它提供了支持大型、多維數(shù)組和矩陣運(yùn)算的高性能數(shù)學(xué)函數(shù)和計(jì)算工具。NumPy 的使用極為廣泛,尤其在數(shù)據(jù)
    的頭像 發(fā)表于 11-29 14:31 ?1934次閱讀

    python變量命名規(guī)則

    Python是一種高級(jí)編程語言,廣泛應(yīng)用于軟件開發(fā)、數(shù)據(jù)分析和科學(xué)計(jì)算等領(lǐng)域。在Python中,變量是用來存儲(chǔ)
    的頭像 發(fā)表于 11-23 15:44 ?1026次閱讀

    燈板制作的新選擇,這些基板鋁基板更好

    燈板制作的新選擇,這些基板鋁基板更好!
    的頭像 發(fā)表于 11-06 10:06 ?449次閱讀

    Anaconda:Python 數(shù)據(jù)分析與挖掘好幫手

    Python進(jìn)行數(shù)據(jù)分析的時(shí)候,你會(huì)不會(huì)煩惱要安裝那么多的模塊?比如Pandas、Numpy、matplotlib、scipy等等,而當(dāng)你接手的項(xiàng)目是由不同的Python版本編寫的時(shí)候你又得
    的頭像 發(fā)表于 11-02 16:00 ?471次閱讀
    Anaconda:<b class='flag-5'>Python</b> <b class='flag-5'>數(shù)據(jù)</b>分析與挖掘好幫手

    Go語言Python強(qiáng)多少

    1.都說Go語言性能非常強(qiáng)大,那么到底Python強(qiáng)多少? 為了比較Go語言和Python語言在單線程性能上的差距,我們可以做一個(gè)簡(jiǎn)單實(shí)驗(yàn),從1億減到1: Python代碼(以下均分
    的頭像 發(fā)表于 11-02 14:05 ?441次閱讀
    Go語言<b class='flag-5'>比</b><b class='flag-5'>Python</b>強(qiáng)多少

    使用Rust優(yōu)化Python性能

    在數(shù)據(jù)分析領(lǐng)域Python無疑是最流行的編程語言,但是Python有一個(gè)硬傷就是作為一個(gè)編譯語言在性能上有些微的欠缺。而同樣最流行的語言Rust則在性能方面表現(xiàn)優(yōu)秀。本文我們一起學(xué)習(xí)一
    的頭像 發(fā)表于 11-01 15:59 ?738次閱讀
    使用Rust優(yōu)化<b class='flag-5'>Python</b>性能