色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

大數(shù)據(jù)處理為什么要用python?

大數(shù)據(jù)的數(shù)據(jù)從哪里來?除了部分企業(yè)有能力自己產(chǎn)生大量的數(shù)據(jù),大部分時(shí)候,是需要靠爬蟲來抓取互聯(lián)網(wǎng)數(shù)據(jù)來做分析。

網(wǎng)絡(luò)爬蟲是Python的傳統(tǒng)強(qiáng)勢(shì)領(lǐng)域,最流行的爬蟲框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能夠獨(dú)當(dāng)一面的類庫。

不過,網(wǎng)絡(luò)爬蟲并不僅僅是打開網(wǎng)頁,解析HTML這么簡單。高效的爬蟲要能夠支持大量靈活的并發(fā)操作,常常要能夠同時(shí)幾千甚至上萬個(gè)網(wǎng)頁同時(shí)抓取,傳統(tǒng)的線程池方式資源浪費(fèi)比較大,線程數(shù)上千之后系統(tǒng)資源基本上就全浪費(fèi)在線程調(diào)度上了。Python由于能夠很好的支持協(xié)程(Coroutine)操作,基于此發(fā)展起來很多并發(fā)庫,如Gevent,Eventlet,還有Celery之類的分布式任務(wù)框架。被認(rèn)為是比AMQP更高效的ZeroMQ也是最早就提供了Python版本。有了對(duì)高并發(fā)的支持,網(wǎng)絡(luò)爬蟲才真正可以達(dá)到大數(shù)據(jù)規(guī)模。

抓取下來的數(shù)據(jù),需要做分詞處理,Python在這方面也不遜色,著名的自然語言處理程序包NLTK,還有專門做中文分詞的Jieba,都是做分詞的利器。

數(shù)據(jù)處理

萬事俱備,只欠東風(fēng)。這東風(fēng),就是數(shù)據(jù)處理算法。從統(tǒng)計(jì)理論,到數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí),再到最近幾年提出來的深度學(xué)習(xí)理論,數(shù)據(jù)科學(xué)正處于百花齊放的時(shí)代。數(shù)據(jù)科學(xué)家們都用什么編程?

如果是在理論研究領(lǐng)域,R語言也許是最受數(shù)據(jù)科學(xué)家歡迎的,但是R語言的問題也很明顯,因?yàn)槭墙y(tǒng)計(jì)學(xué)家們創(chuàng)建了R語言,所以其語法略顯怪異。而且R語言要想實(shí)現(xiàn)大規(guī)模分布式系統(tǒng),還需要很長一段時(shí)間的工程之路要走。所以很多公司使用R語言做原型試驗(yàn),算法確定之后,再翻譯成工程語言。

Python也是數(shù)據(jù)科學(xué)家最喜歡的語言之一。和R語言不同,Python本身就是一門工程性語言,數(shù)據(jù)科學(xué)家用Python實(shí)現(xiàn)的算法,可以直接用在產(chǎn)品中,這對(duì)于大數(shù)據(jù)初創(chuàng)公司節(jié)省成本是非常有幫助的。正式因?yàn)閿?shù)據(jù)科學(xué)家對(duì)Python和R的熱愛,Spark為了討好數(shù)據(jù)科學(xué)家,對(duì)這兩種語言提供了非常好的支持。

Python的數(shù)據(jù)處理相關(guān)類庫非常多。高性能的科學(xué)計(jì)算類庫NumPy和SciPy,給其他高級(jí)算法打了非常好的基礎(chǔ),matploglib讓Python畫圖變得像Matlab一樣簡單。Scikit-learn和Milk實(shí)現(xiàn)了很多機(jī)器學(xué)習(xí)算法,基于這兩個(gè)庫實(shí)現(xiàn)的Pylearn2,是深度學(xué)習(xí)領(lǐng)域的重要成員。Theano利用GPU加速,實(shí)現(xiàn)了高性能數(shù)學(xué)符號(hào)計(jì)算和多維矩陣計(jì)算。當(dāng)然,還有Pandas,一個(gè)在工程領(lǐng)域已經(jīng)廣泛使用的大數(shù)據(jù)處理類庫,其DataFrame的設(shè)計(jì)借鑒自R語言,后來又啟發(fā)了Spark項(xiàng)目實(shí)現(xiàn)了類似機(jī)制。

對(duì)了,還有iPython,這個(gè)工具如此有用,以至于差點(diǎn)把他當(dāng)成標(biāo)準(zhǔn)庫而忘了介紹。iPython是一個(gè)交互式Python運(yùn)行環(huán)境,能夠?qū)崟r(shí)看到每一段Python代碼的結(jié)果。默認(rèn)情況下,iPython運(yùn)行在命令行,可以執(zhí)行ipythonnotebook在網(wǎng)頁中運(yùn)行。用matplotlib繪制的圖可以直接嵌入式的顯示在iPythonNotebook中。

iPythonNotebook的筆記本文件可以共享給其他人,這樣其他人就可以在自己的環(huán)境中重現(xiàn)你的工作成果;如果對(duì)方?jīng)]有運(yùn)行環(huán)境,還可以直接轉(zhuǎn)換成HTML或者PDF。

為什么是Python

正是因?yàn)閼?yīng)用開發(fā)工程師、運(yùn)維工程師、數(shù)據(jù)科學(xué)家都喜歡Python,才使得Python成為大數(shù)據(jù)系統(tǒng)的全棧式開發(fā)語言。

對(duì)于開發(fā)工程師而言,Python的優(yōu)雅和簡潔無疑是最大的吸引力,在Python交互式環(huán)境中,執(zhí)行importthis,讀一讀Python之禪,你就明白Python為什么如此吸引人。Python社區(qū)一直非常有活力,和NodeJS社區(qū)軟件包爆炸式增長不同,Python的軟件包增長速度一直比較穩(wěn)定,同時(shí)軟件包的質(zhì)量也相對(duì)較高。有很多人詬病Python對(duì)于空格的要求過于苛刻,但正是因?yàn)檫@個(gè)要求,才使得Python在做大型項(xiàng)目時(shí)比其他語言有優(yōu)勢(shì)。OpenStack項(xiàng)目總共超過200萬行代碼,證明了這一點(diǎn)。

對(duì)于運(yùn)維工程師而言,Python的最大優(yōu)勢(shì)在于,幾乎所有Linux發(fā)行版都內(nèi)置了Python解釋器。Shell雖然功能強(qiáng)大,但畢竟語法不夠優(yōu)雅,寫比較復(fù)雜的任務(wù)會(huì)很痛苦。用Python替代Shell,做一些復(fù)雜的任務(wù),對(duì)運(yùn)維人員來說,是一次解放。

對(duì)于數(shù)據(jù)科學(xué)家而言,Python簡單又不失強(qiáng)大。和C/C++相比,不用做很多的底層工作,可以快速進(jìn)行模型驗(yàn)證;和Java相比,Python語法簡潔,表達(dá)能力強(qiáng),同樣的工作只需要1/3代碼;和Matlab,Octave相比,Python的工程成熟度更高。不止一個(gè)編程大牛表達(dá)過,Python是最適合作為大學(xué)計(jì)算機(jī)科學(xué)編程課程使用的語言——MIT的計(jì)算機(jī)入門課程就是使用的Python——因?yàn)镻ython能夠讓人學(xué)到編程最重要的東西——如何解決問題。