Python 是一門適合做數(shù)據(jù)挖掘的語言嗎宵晚? - 數(shù)據(jù)分析 - 知乎
https://www.zhihu.com/question/20085299
如果你想用別人做好的成熟的輪子,那 python 是不二之選。因為 python 輪子多而且全绿鸣,比如 numpy,scipy暂氯,scikit learn潮模,gensim 等等都是成熟的輪子。
綜合來看痴施,python是適合做數(shù)據(jù)的擎厢,一是,對于非計算機(jī)科班出身不會有技術(shù)問題辣吃,python本身是非常便于使用的动遭;二是,數(shù)據(jù)挖掘需要的工具在目前來看python基本都已經(jīng)具備神得,并且在穩(wěn)步的發(fā)展厘惦;三是,python在面臨性能問題時解決方案眾多哩簿。
python強(qiáng)調(diào)程序員的生產(chǎn)力宵蕉,讓你把精力集中在邏輯上而不是語言本身上。
你能想象用一下午時間實現(xiàn)從0開始一個簡單的搜索引擎嗎节榜?C++顯然是不行的羡玛。。你的大部分時間都將花在實現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)和調(diào)試語言錯誤上宗苍。稼稿。而用python亿遂,你要做的就是真正理解搜索算法,之后的實現(xiàn)真的很簡單渺杉。蛇数。
我覺得用python很適合算法研究,不僅僅是數(shù)據(jù)挖掘是越《耍快速開發(fā)能讓你迅速驗證你的想法,而不是把時間浪費在程序本身上(想象一下你寫了一星期的c++倚评,調(diào)了一大堆指針錯誤浦徊,最后發(fā)現(xiàn)想法本身就有錯誤。天梧。)當(dāng)你知道你已經(jīng)有了一個正確的算法盔性,要使他運行速度提高只需用c++等重寫性能瓶頸并嵌入就行了。呢岗。
是的冕香,Python適合做數(shù)據(jù)挖掘。作為腳本語言后豫,Python快速開發(fā)的優(yōu)點其他答案都說了悉尾。
Python適合做數(shù)據(jù)挖掘的另一個原因是社區(qū)現(xiàn)在比較成熟,mloss上面發(fā)布的Python程序越來越多挫酿。最著名的就是scikit.learn了吧构眯,幾乎涵蓋了機(jī)器學(xué)習(xí)中常用的算法,而且scikit.learn更新非吃绻辏快惫霸。
scikit.learn只是舉了一個例子,還有orange,pyml等很多非常棒的package葱弟,有了這些包的支持壹店,做數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的時候,就會很節(jié)省時間了翘悉。
Python 適合大數(shù)據(jù)量的處理嗎茫打? - 海量數(shù)據(jù)處理 - 知乎
https://www.zhihu.com/question/19607447
作者:匿名用戶鏈接:https://www.zhihu.com/question/19607447/answer/30601784來源:知乎著作權(quán)歸作者所有居触,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)妖混。我很喜歡用python,用python處理數(shù)據(jù)是家常便飯轮洋,從事的工作涉及nlp制市,算法,推薦弊予,數(shù)據(jù)挖掘祥楣,數(shù)據(jù)清洗,數(shù)據(jù)量級從幾十k到幾T不等,我來說說吧百萬級別數(shù)據(jù)是小數(shù)據(jù)误褪,python處理起來不成問題责鳍,python處理數(shù)據(jù)還是有些問題的Python處理大數(shù)據(jù)的劣勢:1. python線程有g(shù)il,通俗說就是多線程的時候只能在一個核上跑兽间,浪費了多核服務(wù)器历葛。在一種常見的場景下是要命的:并發(fā)單元之間有巨大的數(shù)據(jù)共享或者共用(例如大dict),多進(jìn)程會導(dǎo)致內(nèi)存吃緊嘀略,多線程則解決不了數(shù)據(jù)共享的問題恤溶,單獨的寫一個進(jìn)程之間負(fù)責(zé)維護(hù)讀寫這個數(shù)據(jù)不僅效率不高而且麻煩2. python執(zhí)行效率不高,在處理大數(shù)據(jù)的時候帜羊,效率不高咒程,這是真的,pypy(一個jit的python解釋器讼育,可以理解成腳本語言加速執(zhí)行的東西)能夠提高很大的速度帐姻,但是pypy不支持很多python經(jīng)典的包,例如numpy(順便給pypy做做廣告奶段,土豪可以捐贈一下PyPy - Call for donations**)3. 絕大部分的大公司卖宠,用java處理大數(shù)據(jù)不管是環(huán)境也好,積累也好忧饭,都會好很多Python處理數(shù)據(jù)的優(yōu)勢(不是處理大數(shù)據(jù)):1. 異晨肝椋快捷的開發(fā)速度,代碼量巨少2. 豐富的數(shù)據(jù)處理包词裤,不管正則也好刺洒,html解析啦,xml解析啦吼砂,用起來非常方便3. 內(nèi)部類型使用成本巨低逆航,不需要額外怎么操作(java,c++用個map都很費勁)4. 公司中渔肩,很大量的數(shù)據(jù)處理工作工作是不需要面對非常大的數(shù)據(jù)的5. 巨大的數(shù)據(jù)不是語言所能解決的因俐,需要處理數(shù)據(jù)的框架(hadoop, mpi周偎。抹剩。。蓉坎。)雖然小眾澳眷,但是python還是有處理大數(shù)據(jù)的框架的,或者一些框架也支持python6. 編碼問題處理起來太太太方便了綜上所述:1. python可以處理大數(shù)據(jù)2. python處理大數(shù)據(jù)不一定是最優(yōu)的選擇3. python和其他語言(公司主推的方式)并行使用是非常不錯的選擇4. 因為開發(fā)速度蛉艾,你如果經(jīng)常處理數(shù)據(jù)钳踊,而且喜歡linux終端衷敌,而且經(jīng)常處理不大的數(shù)據(jù)(100m一下),最好還是學(xué)一下pythonpython數(shù)據(jù)處理的包:1. 自帶正則包拓瞪, 文本處理足夠了2. cElementTree, lxml 默認(rèn)的xml速度在數(shù)據(jù)量過大的情況下不足3. beautifulsoup 處理html4. hadoop(可以用python) 并行處理缴罗,支持python寫的map reduce,足夠了祭埂, 順便說一下阿里巴巴的odps瞒爬,和hadoop一樣的東西,支持python寫的udf沟堡,嵌入到sql語句中5. numpy, scipy, scikit-learn 數(shù)值計算侧但,數(shù)據(jù)挖掘6. dpark(搬樓上的答案)類似hadoop一樣的東西1,2航罗,3禀横,5是處理文本數(shù)據(jù)的利器(python不就處理文本數(shù)據(jù)方便嘛),4粥血,6是并行計算的框架(大數(shù)據(jù)處理的效率在于良好的分布計算邏輯柏锄,而不是什么語言)暫時就這些,最好說一個方向复亏,否則不知道處理什么樣的數(shù)據(jù)也不好推薦包趾娃,所以沒有頭緒從哪里開始介紹這些包