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

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

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

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

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

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

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

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

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

那么,你應該做出怎樣的選擇呢?

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

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

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

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

也就是說,我相信,如果你學習 Python 的話,你將會更快地成為一名實踐數(shù)據(jù)科學家,而且還能夠更好地在統(tǒng)計建模之外的重要領(lǐng)域為你的團隊做出貢獻。

因此,學習 Python 將會使你能夠為公司帶來更大的影響力,而你的職業(yè)生涯也將因此碩果累累。

理由一:無論如何,你可能得學習 Python

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

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

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

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

理由二:Python 更容易學習

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

Python 以易學而聞名。在學過 Python 和 R 之后(雖然我對 Python 方面更深入),我認為,Python 的聲譽是當之無愧的。

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

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

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

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

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

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

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

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

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

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

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

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

對我來說,Python 最大的缺點就是沒有與 RStudio 相當?shù)墓ぞ摺ython 最有可比性的是 Jupyter Notebook,但我個人覺得 RStuduo 更好一些,因為它具有數(shù)據(jù)探索的功能。

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

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

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

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

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

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

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

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

    關(guān)注

    2

    文章

    1263

    瀏覽量

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

    關(guān)注

    10

    文章

    1945

    瀏覽量

    34774
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84755
收藏 人收藏

    評論

    相關(guān)推薦

    Mathematica 在數(shù)據(jù)分析中的應用

    在數(shù)據(jù)分析領(lǐng)域發(fā)揮著重要作用。 1. 數(shù)據(jù)導入 在進行數(shù)據(jù)分析之前,首先需要將數(shù)據(jù)導入到Mathematica中。Mathematica支
    的頭像 發(fā)表于 12-26 15:41 ?100次閱讀

    《AI for Science:人工智能驅(qū)動科學創(chuàng)新》第6章人AI與能源科學讀后感

    幸得一好書,特此來分享。感謝平臺,感謝作者。受益匪淺。 在閱讀《AI for Science:人工智能驅(qū)動科學創(chuàng)新》的第6章后,我深刻感受到人工智能在能源科學領(lǐng)域中的巨大潛力和廣泛應用。這一章詳細
    發(fā)表于 10-14 09:27

    AI for Science:人工智能驅(qū)動科學創(chuàng)新》第4章-AI與生命科學讀后感

    研究的深入發(fā)展。 3. 挑戰(zhàn)與機遇并存 盡管AI在生命科學領(lǐng)域取得了顯著的成果,但也面臨著諸多挑戰(zhàn)。例如,數(shù)據(jù)隱私、算法偏見、倫理道德等問題都需要我們認真思考和解決。同時,如何更好地將
    發(fā)表于 10-14 09:21

    《AI for Science:人工智能驅(qū)動科學創(chuàng)新》第二章AI for Science的技術(shù)支撐學習心得

    人工智能在科學研究中的核心技術(shù),包括機器學習、深度學習、神經(jīng)網(wǎng)絡(luò)等。這些技術(shù)構(gòu)成了AI for Science的基石,使得AI能夠處理和分析復雜的數(shù)據(jù)集,從而發(fā)現(xiàn)隱藏在數(shù)據(jù)中的模式和規(guī)律。 2. 高性能
    發(fā)表于 10-14 09:16

    《AI for Science:人工智能驅(qū)動科學創(chuàng)新》第一章人工智能驅(qū)動的科學創(chuàng)新學習心得

    學科之間的交叉融合,形成了一種全新的科學研究范式。AI技術(shù)打破了學科壁壘,使得物理學、化學、生物學、天文學等領(lǐng)域的研究者能夠共享數(shù)據(jù)和算法,共同解決復雜問題。這種跨學科的合作不僅拓寬了科學
    發(fā)表于 10-14 09:12

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

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

    Python建模算法與應用

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

    Python怎么讀取STM32串口數(shù)據(jù)?

    =ser.readlines()print(s) 可是什么都讀取不了。如果用買的STM32開發(fā)板送的串口助手,能接收到數(shù)據(jù)。板子上燒錄的printf輸出程序。 請問各位大神,Python程序要怎么寫才能讀取串口數(shù)據(jù)呢?跪求大神解
    發(fā)表于 04-24 07:30

    Python自動化測試框架及其應用

    Pytest是一個非常成熟的全功能的Python測試框架,與python自帶的unittest測試框架類似,但是unittest框架使用起來更簡潔,功能更強大。
    的頭像 發(fā)表于 04-03 16:15 ?559次閱讀
    <b class='flag-5'>Python</b>自動化測試框架及其應用

    半導體放電管TSS:原理及在電子領(lǐng)域的應用?|深圳創(chuàng)達電子EMC a

    半導體放電管TSS:原理及在電子領(lǐng)域的應用?|深圳創(chuàng)達電子EMC半導體放電管TSS是一種高壓、高速、低電流的電子元件,廣泛用于電力電子、通訊、光電子等領(lǐng)域。本文將從TSS的定義、工作原理、應用場
    發(fā)表于 03-06 10:07

    cyw20721對cyw20706哪個更好?

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

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

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

    超級電容器電池更好嗎?

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

    磁環(huán)在數(shù)據(jù)線上的應用及選擇

    磁環(huán)在數(shù)據(jù)線上的應用及選擇 隨著科技的進步和發(fā)展,數(shù)據(jù)線已成為人們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡囊徊糠帧?b class='flag-5'>數(shù)據(jù)線起著連接設(shè)備和傳輸數(shù)據(jù)的重要作用。而在數(shù)據(jù)
    的頭像 發(fā)表于 01-11 15:24 ?1241次閱讀

    超級電容器電池更好嗎?

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