<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          數(shù)據(jù)分析領(lǐng)域的編程語(yǔ)言之爭(zhēng),誰(shuí)才是王者?

          共 2952字,需瀏覽 6分鐘

           ·

          2021-04-13 16:45

          編程語(yǔ)言的好壞及排行之爭(zhēng)由來(lái)已久。“PHP是世界上最好的語(yǔ)言”,這是一個(gè)流傳于程序員圈子的梗。


          筆者無(wú)意加入“哪門語(yǔ)言更好”的戰(zhàn)爭(zhēng)。每門語(yǔ)言的誕生,都有其特定的背景和需求,都能解決相應(yīng)的問(wèn)題,脫離需求和背景爭(zhēng)論哪門語(yǔ)言更好是沒有意義的。


          最重要的是,我們需要搞清楚到底要解決什么問(wèn)題,這樣才能更方便地找到對(duì)應(yīng)的工具。

          導(dǎo)


          ▲TIOBE發(fā)布2021年4月編程語(yǔ)言排行榜,看近兩年各語(yǔ)言勢(shì)力變遷


          數(shù)據(jù)分析領(lǐng)域(包括量化投資),編程語(yǔ)言具有兩大作用,一個(gè)是科學(xué)計(jì)算、統(tǒng)計(jì)等算法層面,主要用于業(yè)務(wù)的相關(guān)研究;另一個(gè)是系統(tǒng)應(yīng)用開發(fā),主要用來(lái)搭建基礎(chǔ)IT設(shè)施,比如數(shù)據(jù)庫(kù)、交易平臺(tái)等。


          Matlab和R主要用于業(yè)務(wù)層面的研究工作。C++和Java則主要是用于系統(tǒng)搭建工作。業(yè)務(wù)研究和系統(tǒng)搭建的區(qū)別還是很明顯的,每類語(yǔ)言適應(yīng)的場(chǎng)景都不太一樣,否則也沒有必要存在那么多種語(yǔ)言了。比如,使用Matlab搭建一個(gè)交易系統(tǒng),那么其速度一定會(huì)慢得讓人無(wú)法忍受。如果用C++或者Java做數(shù)據(jù)分析,那么其效率一定也會(huì)非常低。


          至于Python,其優(yōu)勢(shì)在于作為一種膠水語(yǔ)言,其適用面非常廣。
          換句話說(shuō),Python是可以同時(shí)完成數(shù)據(jù)分析和系統(tǒng)搭建兩種工作的,而且性能和效率有著非常好的平衡。使用Python既可以編寫機(jī)器學(xué)習(xí)的復(fù)雜模型,也可以搭建支撐億級(jí)別訪問(wèn)量的網(wǎng)站系統(tǒng),又或者搭建微秒級(jí)的程序化交易系統(tǒng)。


          什么都能做,而且還能做得很不錯(cuò),這是Python能夠迅速流行的核心原因之一。


          下面將對(duì)上面提到的部分常見的語(yǔ)言做一個(gè)簡(jiǎn)單的介紹。


          01 Matlab


          截至目前,在國(guó)內(nèi)量化研究領(lǐng)域,Matlab的使用率應(yīng)該是最高的。這個(gè)數(shù)據(jù)來(lái)源于Wind,在他們的量化接口中,Matlab的使用率是最高的,Python其次。但是Python是增長(zhǎng)速度最快的。



          Matlab作為商業(yè)軟件,功能很全很強(qiáng)大,可靠性也很好。最早一批做科學(xué)計(jì)算和數(shù)據(jù)分析的,很多都是使用的Matlab。量化投資在國(guó)內(nèi)剛出現(xiàn)的時(shí)候,Python和R的社區(qū)生態(tài)還沒有像現(xiàn)在這樣完善,所以很多量化投資的業(yè)內(nèi)人士都更習(xí)慣于使用Matlab。


          如果不考慮授權(quán)費(fèi)用的問(wèn)題,那么Matlab確實(shí)是一款非常好用的數(shù)據(jù)分析乃至量化投資分析的工具,畢竟有實(shí)力雄厚的公司在支持Matlab的開發(fā),性能和工具包都能得到保證。


          不過(guò),Matlab與Python相比,除了費(fèi)用問(wèn)題之外,
          還存在很多缺陷,而且是無(wú)法彌補(bǔ)的缺陷。特別是涉及系統(tǒng)級(jí)別的開發(fā)時(shí),比如交易系統(tǒng)、爬蟲系統(tǒng)等。在這些領(lǐng)域,Matlab不僅缺少相應(yīng)的庫(kù),而且速度非常慢,因此其很難在工業(yè)界得到廣泛應(yīng)用。

          02 R


          R是一個(gè)開源的數(shù)據(jù)分析軟件。實(shí)際上,R的誕生,就是為了協(xié)助完成統(tǒng)計(jì)和數(shù)據(jù)分析。由于R在研究機(jī)構(gòu)和大學(xué)非常流行,因此這些機(jī)構(gòu)反過(guò)來(lái)也開發(fā)了大量相應(yīng)的開源項(xiàng)目,這也使得R的各種統(tǒng)計(jì)功能和函數(shù)琳瑯滿目。



          R很多常用的統(tǒng)計(jì)功能都經(jīng)過(guò)了大量實(shí)踐的檢驗(yàn),是非常完善和成熟的,比如,時(shí)間序列分析、經(jīng)典統(tǒng)計(jì)模型、貝葉斯統(tǒng)計(jì)、機(jī)器學(xué)習(xí)等。R也有一些量化相關(guān)的庫(kù),比如quantmod。


          當(dāng)然,R也有它的缺點(diǎn),比如,對(duì)于大量的數(shù)據(jù)處理,R還是力有不逮。由于R更多的是由統(tǒng)計(jì)界人士完成的,所以偏底層的數(shù)據(jù)管理并不是R的強(qiáng)項(xiàng)。


          總體上講,
          R的統(tǒng)計(jì)和數(shù)據(jù)分析相關(guān)功能非常強(qiáng)大,更適合做研究,不適合開發(fā)大型的系統(tǒng)。


          03 C++


          C++最大的好處就是性能強(qiáng),速度極快。幾乎所有需要高性能的科學(xué)計(jì)算功能都是基于C++或者Fortran開發(fā)的。比如,Python的底層其實(shí)就是用C語(yǔ)言實(shí)現(xiàn)的。



          因?yàn)樗俣瓤欤珻++在高頻交易領(lǐng)域也是獨(dú)占一席。然而,在進(jìn)行日常的數(shù)據(jù)分析和研究中使用C++其實(shí)是非常不方便的。因?yàn)镃++語(yǔ)言偏底層,對(duì)編程人員的要求很高,同樣的功能,開發(fā)難度高很多,調(diào)試起來(lái)也比較麻煩。


          所以除非是在對(duì)性能有極高要求的地方,一般不推薦使用C++進(jìn)行開發(fā)。

          04 Python


          Python語(yǔ)法非常易學(xué)易懂,很容易快速上手。很多人剛開始學(xué)習(xí)編程的時(shí)候,往往會(huì)選擇從Python入手。



          與Matlab、R一樣,Python也是腳本語(yǔ)言,寫好了就可以直接運(yùn)行,省去了編譯鏈接的麻煩,對(duì)于需要快速開發(fā)和進(jìn)行驗(yàn)證的程序,可以省去很多編碼和調(diào)試的時(shí)間。


          Python也是面向?qū)ο蟮恼Z(yǔ)言,但它的面向?qū)ο蟛幌馛++那樣強(qiáng)調(diào)概念,而是更注重實(shí)用。
          它能使用最簡(jiǎn)單的方法讓編程者享受到面向?qū)ο髱?lái)的好處。這也是Python能像Java、C#那樣吸引眾多支持者的原因之一。


          雖然Python是一種腳本語(yǔ)言,但它的速度并不是很慢,特別是在一些庫(kù)經(jīng)過(guò)優(yōu)化之后(直接基于C語(yǔ)言編寫接口),速度比純C語(yǔ)言慢不了多少。在這方面,它遠(yuǎn)勝于R和Matlab。


          Python是一種功能豐富的語(yǔ)言,
          它擁有一個(gè)強(qiáng)大的基本類庫(kù)和數(shù)量眾多的第三方擴(kuò)展生態(tài)。


          Python幾乎在各個(gè)領(lǐng)域都有對(duì)應(yīng)的開源項(xiàng)目,因此我們不必重新造輪子。使用Scrapy,我們可以編寫網(wǎng)絡(luò)爬蟲系統(tǒng),爬取網(wǎng)絡(luò)相關(guān)數(shù)據(jù);使用各種數(shù)據(jù)庫(kù)接口,我們可以將數(shù)據(jù)的存儲(chǔ)、讀取工作標(biāo)準(zhǔn)化;使用PyAlgoTrader,我們可以構(gòu)建策略回測(cè)系統(tǒng)和自動(dòng)交易系統(tǒng)。


          Python還有很多優(yōu)秀的量化、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)(ML)工具,比如NumPy、SciPy、Pandas、Scikit-Learn和Maplotlib等。


          雖然Python在機(jī)器學(xué)習(xí)和一般的數(shù)據(jù)分析中非常出色,
          但仍然存在短板,比如,其在一部分傳統(tǒng)領(lǐng)域里表現(xiàn)就不算太好,包括很多傳統(tǒng)統(tǒng)計(jì)模型、時(shí)間序列分析等,Python就不如Matlab和R。


          簡(jiǎn)而言之,我們可以用Python構(gòu)建一條完整的量化投資生產(chǎn)線。當(dāng)然,不可否認(rèn)的是,對(duì)于某些環(huán)節(jié),有些語(yǔ)言相對(duì)于Python也有其優(yōu)勢(shì),比如R的統(tǒng)計(jì)庫(kù)、Matlab的科學(xué)計(jì)算、SAS的可靠性、C++構(gòu)建高速交易系統(tǒng)等。不過(guò)這些優(yōu)勢(shì)只是95分和90分的區(qū)別,除了少數(shù)極端業(yè)務(wù)場(chǎng)景之外,絕大部分工作Python其實(shí)都能勝任。


          在量化投資領(lǐng)域,大多數(shù)需求都可以用Python完成,這可以為團(tuán)隊(duì)節(jié)省大量的時(shí)間。畢竟在不同的語(yǔ)言之間不斷切換,也是一件很耗費(fèi)精力的事情。

          05 其他語(yǔ)言


          除了上面介紹的語(yǔ)言之外,其實(shí)還有很多其他的語(yǔ)言在量化投資領(lǐng)域中也都有應(yīng)用。比如Java、C#、Scala等,這些語(yǔ)言也都有其相應(yīng)的優(yōu)勢(shì)和特點(diǎn)。不過(guò)相對(duì)于上面介紹的語(yǔ)言來(lái)說(shuō),這些語(yǔ)言在國(guó)內(nèi)的使用群體仍然是偏小眾的。對(duì)于初學(xué)者來(lái)說(shuō),建議還是選擇Python語(yǔ)言。


          作者:趙志強(qiáng) 劉志偉

          轉(zhuǎn)自:大數(shù)據(jù)DT(ID:hzdashuju)

          封面圖來(lái)自:pexels

          推薦閱讀:

          在線教育、社區(qū)團(tuán)購(gòu)、互聯(lián)網(wǎng)招聘行業(yè)分析 | 2020年移動(dòng)互聯(lián)網(wǎng)報(bào)告

          技術(shù)專欄 | ClickHouse核心引擎MergeTree解讀

          TIOBE 12月編程語(yǔ)言排行榜:Python有望第四次成為年度語(yǔ)言

          TalkingData——用數(shù)據(jù)說(shuō)話

          每天一篇好文章,歡迎分享關(guān)注

          瀏覽 38
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码人妻 一区二区三区 | 大香蕉网大香蕉网 | 一级片亚洲 | AV一区波多野结衣 | 毛片操逼视频 |