{eval=Array;=+count(Array);}
先說結(jié)論,
問題1回答:數(shù)據(jù)分析技術(shù)簡(jiǎn)單來說可歸類為統(tǒng)計(jì)分析技術(shù)和數(shù)據(jù)可視化兩類。
問題2回答:目前階段做數(shù)據(jù)分析使用Python更高效,方便一點(diǎn)。
希望我作為數(shù)據(jù)分析師的經(jīng)驗(yàn)?zāi)軐?duì)你有幫助
數(shù)據(jù)分析是指用適當(dāng)?shù)慕y(tǒng)計(jì)方法對(duì)收集的大量數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,提取有用信息和形成結(jié)論而對(duì)數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過程,最后再通過得到的結(jié)論應(yīng)用到行業(yè)中解決實(shí)際問題。
簡(jiǎn)單概括來說數(shù)據(jù)分析就是-- 處理數(shù)據(jù)然后推進(jìn)優(yōu)化現(xiàn)實(shí)工作。
數(shù)據(jù)分析應(yīng)用在各行各業(yè),互聯(lián)網(wǎng),工業(yè),咨詢行業(yè)等,有一個(gè)共同點(diǎn),數(shù)據(jù)分析都是為業(yè)務(wù)服務(wù)的,用于解決實(shí)際運(yùn)營(yíng)中出來的問題,或者探索業(yè)務(wù)可優(yōu)化的空間。
明白了這一點(diǎn),就知道數(shù)據(jù)分析不是目的,數(shù)據(jù)分析的結(jié)果產(chǎn)出對(duì)業(yè)務(wù)的實(shí)際提升和優(yōu)化才是目的,數(shù)據(jù)分析只是一種解決的方法,既然是方法,我們就要考慮它的效果,成本(學(xué)習(xí)成本,使用成本)等。
以現(xiàn)在最熱門的互聯(lián)網(wǎng)行業(yè)的數(shù)據(jù)分析而言,隨便從招聘網(wǎng)站上截取部分應(yīng)屆生數(shù)據(jù)分析師招聘JD,選取應(yīng)屆生是因?yàn)橄鄬?duì)要求低一點(diǎn),對(duì)題主想要入門應(yīng)該更有參考下價(jià)值。
不同公司業(yè)務(wù)不同,對(duì)于“崗位職責(zé)”先可以不用太關(guān)注,我們這里主要看“任職資格”這一部分,關(guān)于技能方面,可以看到有SQL,Python/R,Spark,hive,BI工具等。
看起來需要掌握的很多,那我們?cè)賮硗ㄟ^大數(shù)據(jù)的方法看一下,獲取招聘網(wǎng)站上的招聘要求,根據(jù)工具關(guān)鍵詞出現(xiàn)的頻率,繪制成數(shù)據(jù)分析所需工具詞云圖:
可以看到,Excel,sql,python,PPT,hive,spss等出現(xiàn)的評(píng)率最高,同時(shí)可以可以看到還有很多其他的工具技能要求,但這幾個(gè)出現(xiàn)頻率最高的肯定是基本要求,那么是否這些工具我們都需要掌握呢,這個(gè)根據(jù)兩個(gè)方面,一是你所處的工作階段,二是作為數(shù)據(jù)分析師的不同方向。
我這里從數(shù)據(jù)分析方法的角度將數(shù)據(jù)分析方向分為三個(gè):業(yè)務(wù)數(shù)據(jù)分析,數(shù)據(jù)挖掘分析,大數(shù)據(jù)分析。將每個(gè)方向?qū)?yīng)的工具和方法做成思維導(dǎo)圖如下:
可以見到,每個(gè)方向所對(duì)應(yīng)的主要工具要求都不一樣,一般來說,從業(yè)務(wù)數(shù)據(jù)分析》數(shù)據(jù)挖掘分析》大數(shù)據(jù)分析的技能門檻是逐步提高的,而且技能要求也是疊加的,也就是說例如數(shù)據(jù)挖掘分析師也需要掌握業(yè)務(wù)數(shù)據(jù)分析的工具和方法。
但這并不是數(shù)據(jù)分析師的發(fā)展路徑,這只是數(shù)據(jù)分析不同的方向,如果對(duì)業(yè)務(wù)數(shù)據(jù)分析非常感興趣且工作非常有成效,有很好的數(shù)據(jù)分析思維,那么完全可以往業(yè)務(wù)方向發(fā)展,只掌握SQL,EXCEL,PPT等成為商業(yè)分析師和集團(tuán)戰(zhàn)略分析師也是沒有問題的,所以根據(jù)自己的情況,不用過分追求技術(shù),別忘記,數(shù)據(jù)分析是為業(yè)務(wù)服務(wù)的!。
根據(jù)以上部分我們可以總結(jié)回答下題主的第一個(gè)問題(數(shù)據(jù)分析需要的技術(shù)),結(jié)合上圖,可以歸納為描述性統(tǒng)計(jì)分析技術(shù)(業(yè)務(wù)數(shù)據(jù)分析),探索性統(tǒng)計(jì)分析技術(shù)(數(shù)據(jù)挖掘,大數(shù)據(jù)分析),數(shù)據(jù)可視化(將數(shù)據(jù)分析結(jié)果圖表化,撰寫報(bào)告用或匯報(bào)用)。
3.Python
VS Java, 更高效,方便一點(diǎn)既然題主提出Python和Java的對(duì)比,說明對(duì)編程語言和數(shù)據(jù)分析還是有一定了解的,結(jié)合上面2部分的分析,題主可能實(shí)際想知道的是Python和Java哪一個(gè)更適合做探索性的數(shù)據(jù)分析(數(shù)據(jù)挖掘和大數(shù)據(jù)分析),做簡(jiǎn)單的探索性分析其實(shí)用SPSS和R語言等一樣可行。
但探索性數(shù)據(jù)分析里目前非常重要且流行的一個(gè)方法是機(jī)器學(xué)習(xí),目前機(jī)器學(xué)習(xí)的主要框架如Tensorflow, sklearn等均是基于Python語言,因?yàn)閼?yīng)用廣泛且被證明是高效可行的,所以目前來看使用成本相對(duì)較低,另外考慮到公司里的團(tuán)隊(duì)合作,使用同樣的編程語言,團(tuán)隊(duì)交流合作也會(huì)更加高效。
另外涉及學(xué)習(xí)成本,Python出名的靈活便捷使其成為數(shù)據(jù)分析的首選,使用Python做數(shù)據(jù)分析,掌握基本語法之后,學(xué)會(huì)使用Numpy,Pandas,matplotlib等庫之后就可以開始數(shù)據(jù)分析,實(shí)現(xiàn)同樣的數(shù)據(jù)分析功能,先比于Java, Python用更少的代碼即可實(shí)現(xiàn), 另外Python的眾多數(shù)據(jù)分析相關(guān)的開源庫也提供了很好的數(shù)據(jù)分析平臺(tái)。
而Java并非在數(shù)據(jù)領(lǐng)域很少使用,相反它是大數(shù)據(jù)平臺(tái)的基礎(chǔ),例如Hadoop等大數(shù)據(jù)平臺(tái)是基于Java, 但這部分更多的是數(shù)據(jù)開發(fā)和數(shù)據(jù)倉庫方向的技術(shù)開發(fā)的內(nèi)容,與數(shù)據(jù)分析有較大區(qū)別。即使是大數(shù)據(jù)分析師,在使用大數(shù)據(jù)平臺(tái)時(shí),掌握Hive sql 也能完成取數(shù)要求,并不需要掌握J(rèn)ava。
綜上,數(shù)據(jù)分析技術(shù)因數(shù)據(jù)分析方向和階段各異,主要是統(tǒng)計(jì)分析和數(shù)據(jù)可視化,現(xiàn)階段Python比Java更適合做數(shù)據(jù)分析。謝謝
這是一個(gè)非常好的問題,作為一名IT從業(yè)者,我來回答一下。
首先,隨著大數(shù)據(jù)技術(shù)的落地應(yīng)用,數(shù)據(jù)分析作為大數(shù)據(jù)的常見任務(wù)會(huì)逐漸增多,未來不僅IT(互聯(lián)網(wǎng))行業(yè)會(huì)需要進(jìn)行大量的數(shù)據(jù)分析,傳統(tǒng)行業(yè)領(lǐng)域也會(huì)逐漸釋放出大量的數(shù)據(jù)分析任務(wù)。
從當(dāng)前的技術(shù)體系來看,目前常見的數(shù)據(jù)分析方式有兩種,一種是統(tǒng)計(jì)學(xué)方式,另一種是機(jī)器學(xué)習(xí)方式,而無論采用哪種數(shù)據(jù)分析方式,通常都離不開程序設(shè)計(jì)。當(dāng)前在生產(chǎn)環(huán)境下,數(shù)據(jù)分析任務(wù)通常都基于平臺(tái)來展開,比如Hadoop、Spark就是比較常見的數(shù)據(jù)分析平臺(tái)。
在Hadoop和Spark平臺(tái)下,采用Java和Python都可以,同時(shí)也可以采用Scala和R等編程語言,開發(fā)人員可以根據(jù)自身的知識(shí)結(jié)構(gòu)來選擇具體的編程語言,而對(duì)于初學(xué)者來說,當(dāng)前學(xué)習(xí)Python語言是不錯(cuò)的選擇。
采用Python進(jìn)行數(shù)據(jù)分析有三方面好處,其一是Python語言自身比較簡(jiǎn)單易學(xué),初學(xué)者很容易上手;其二是Python語言有眾多的庫可以使用,比如Numpy、Matplotlib、Pandas等,這些庫對(duì)于提升Python數(shù)據(jù)分析能力有非常直接的幫助;其三是Python語言本身就是一門全場(chǎng)景編程語言,具有較強(qiáng)的落地應(yīng)用能力。
從當(dāng)前的使用情況來看,在數(shù)據(jù)分析領(lǐng)域,Python語言的上升趨勢(shì)還是比較明顯的,而且數(shù)據(jù)分析人員也比較愿意使用Python,與Java語言主要應(yīng)用在IT(互聯(lián)網(wǎng))行業(yè)不同,Python語言在傳統(tǒng)行業(yè)的應(yīng)用也比較普遍。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計(jì)算機(jī)專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領(lǐng)域,我會(huì)陸續(xù)寫一些關(guān)于互聯(lián)網(wǎng)技術(shù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會(huì)有所收獲。
如果有互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等方面的問題,或者是考研方面的問題,都可以在評(píng)論區(qū)留言,或者私信我!
我猜樓主問這個(gè)問題,主要還是對(duì)數(shù)據(jù)分析技術(shù)不太了解
先說結(jié)論:
如果你是想搭建完整的數(shù)據(jù)分析解決方案,從存儲(chǔ),數(shù)據(jù)處理和清洗,分析,可視化,那就用java,畢竟java這塊解決方案和框架較多,比如hadoop,spark,flink等
如果你只是純數(shù)據(jù)分析,數(shù)據(jù)集比較單一,比如想快速在excel或數(shù)據(jù)庫中,檢索,查詢,提煉自己想要的數(shù)據(jù),就用python
我們來看看目前企業(yè)對(duì)數(shù)據(jù)分析的需求吧:
20%的數(shù)據(jù)發(fā)揮著80%的業(yè)務(wù)價(jià)值;
80%的數(shù)據(jù)請(qǐng)求只針對(duì)20%的數(shù)據(jù)。
目前來看,不管是數(shù)據(jù)存儲(chǔ)處理、分析還是挖掘,最完整和成熟的生態(tài)圈還是基于關(guān)系型數(shù)據(jù)庫,比如報(bào)表、聯(lián)機(jī)分析等工具;另外就是數(shù)據(jù)分析人員更偏重于查詢分析語言如SQL、R、Python數(shù)據(jù)分析包而不是編程語言。
企業(yè)大數(shù)據(jù)平臺(tái)建設(shè)的二八原則是,將20%最有價(jià)值的數(shù)據(jù)——以結(jié)構(gòu)化的形式存儲(chǔ)在關(guān)系型數(shù)據(jù)庫中供業(yè)務(wù)人員進(jìn)行查詢和分析;而將80%的數(shù)據(jù)——以非結(jié)構(gòu)化、原始形式存儲(chǔ)在相對(duì)廉價(jià)的Hadoop等平臺(tái)上,供有一定數(shù)據(jù)挖掘技術(shù)的數(shù)據(jù)分析師或數(shù)據(jù)工程師進(jìn)行下一步數(shù)據(jù)處理。經(jīng)過加工的數(shù)據(jù)可以以數(shù)據(jù)集市或數(shù)據(jù)模型的形式存儲(chǔ)在NoSQL數(shù)據(jù)庫中,這也是后面要講到的“離線”與“在線”數(shù)據(jù)。
數(shù)據(jù)庫到數(shù)據(jù)倉庫,是事務(wù)型數(shù)據(jù)到分析型數(shù)據(jù)的轉(zhuǎn)變,分析型數(shù)據(jù)需要包括的是:分析的主題、數(shù)據(jù)的維度和層次,以及數(shù)據(jù)的歷史變化等等。而對(duì)大數(shù)據(jù)平臺(tái)來說,對(duì)分析的需求會(huì)更細(xì),包括:
查詢:快速響應(yīng)組合條件查詢、模糊查詢、標(biāo)簽
搜索:包括對(duì)非結(jié)構(gòu)化文檔的搜索、返回結(jié)果的排序
統(tǒng)計(jì):實(shí)時(shí)反映變化,如電商平臺(tái)的在線銷售訂單與發(fā)貨計(jì)算出的庫存顯示
挖掘:支持挖掘算法、機(jī)器學(xué)習(xí)的訓(xùn)練集
針對(duì)不同的數(shù)據(jù)處理需求,可能需要設(shè)計(jì)不同的數(shù)據(jù)存儲(chǔ),還需要考慮如何快速地將數(shù)據(jù)復(fù)制到對(duì)應(yīng)的存儲(chǔ)點(diǎn)并進(jìn)行合適的結(jié)構(gòu)轉(zhuǎn)換,以供分析人員快速響應(yīng)業(yè)務(wù)的需求。
JAVA技術(shù)棧:
一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu)。
解決了大數(shù)據(jù)(大到一臺(tái)計(jì)算機(jī)無法進(jìn)行存儲(chǔ),一臺(tái)計(jì)算機(jī)無法在要求的時(shí)間內(nèi)進(jìn)行處理)的可靠存儲(chǔ)(HDFS)和處理(MapReduce)。
是建立在Hadoop之上的,使用Hadoop作為底層存儲(chǔ)的批處理系統(tǒng)。(可以理解為MapReduce的一層殼)
Hive是為了減少M(fèi)apReduce jobs的編寫工作。
HBase是一種Key/Value系統(tǒng),它運(yùn)行在HDFS之上。
Hbase是為了解決Hadoop的實(shí)時(shí)性需求。
Spark和Storm都是通用的并行計(jì)算框架。
解決Hadoop只適用于離線數(shù)據(jù)處理,而不能提供實(shí)時(shí)數(shù)據(jù)處理能力的問題。
區(qū)別:
1. Spark基于這樣的理念,當(dāng)數(shù)據(jù)龐大時(shí),把計(jì)算過程傳遞給數(shù)據(jù)要比把數(shù)據(jù)傳遞給計(jì)算過程要更富效率。而Storm是把數(shù)據(jù)傳遞給計(jì)算過程。
2. 基于設(shè)計(jì)理念的不同,其應(yīng)用領(lǐng)域也不同。Spark工作于現(xiàn)有的數(shù)據(jù)全集(如Hadoop數(shù)據(jù))已經(jīng)被導(dǎo)入Spark集群,Spark基于in-memory管理可以進(jìn)行快訊掃描,并最小化迭代算法的全局I/O操作。Storm在動(dòng)態(tài)處理大量生成的“小數(shù)據(jù)塊”上要更好(比如在Twitter數(shù)據(jù)流上實(shí)時(shí)計(jì)算一些匯聚功能或分析)。
Python技術(shù)棧
一張圖搞定
python技術(shù)棧
Java大數(shù)據(jù):
Java語言應(yīng)用廣泛,可以應(yīng)用的領(lǐng)域也非常多,有完整的生態(tài)體系,另外Java語言的性能也非常不錯(cuò)。Java與大數(shù)據(jù)的關(guān)系非常密切,一方面目前做大數(shù)據(jù)開發(fā)的程序員很多都是從Java程序員轉(zhuǎn)過去的,另一方面Hadoop平臺(tái)本身就是基于Java開發(fā)的,所以目前Java在大數(shù)據(jù)開發(fā)中的使用還是非常普遍的。
但是Java語言自身的復(fù)雜性讓很多程序員感覺它有點(diǎn)“重”,格式化的東西有點(diǎn)多,所以在Spark平臺(tái)下,很多程序員更愿意使用Scala語言,而Scala就是基于Java語言構(gòu)建的,所以有Java基礎(chǔ)再學(xué)習(xí)Scala還是比較輕松的。
單學(xué)Java以后的就業(yè)方向單一,薪資就是Java程序員的基本水平;而Java大數(shù)據(jù)工程師,以后的就業(yè)可以從事Java方面的工作,也可以涉獵大數(shù)據(jù)方面的工作,因?yàn)閷?duì)大數(shù)據(jù)技術(shù)知識(shí)有所涉獵,所以談薪資的資本會(huì)高一些:
由于大數(shù)據(jù)產(chǎn)業(yè)的火爆,相關(guān)職位的待遇也是水漲船高??梢钥吹剑髷?shù)據(jù)相關(guān)職位的平均薪資已經(jīng)超過月薪20K。
Python大數(shù)據(jù):
Python語言目前在大數(shù)據(jù)和人工智能領(lǐng)域有廣泛的應(yīng)用,原因就是Python語言簡(jiǎn)單、直接、方便。Python語言是腳本式語言,所以學(xué)習(xí)起來比較簡(jiǎn)單,腳本語言的天然屬性就是直接,所以Python在語法結(jié)構(gòu)上比Java要“輕”很多。
另外,由于Python有豐富的庫支持,所以Python做軟件開發(fā)也非?!爸苯印?,程序員的作用有點(diǎn)像做“集成”的感覺。目前Python在Hadoop和Spark平臺(tái)下的使用都非常普遍,而且越來越多的Java程序員轉(zhuǎn)向使用Python,因?yàn)闆]人愿意復(fù)雜。
但是Python缺點(diǎn)也比較明顯,那就是Python的性能遠(yuǎn)不及Java,另外與大數(shù)據(jù)平臺(tái)的耦合度也不如Java好。但是如果你使用Python做算法實(shí)現(xiàn)、數(shù)據(jù)分析、數(shù)據(jù)呈現(xiàn)等應(yīng)用是完全沒有問題的,效率也比較高。
總之,如果做大數(shù)據(jù)開發(fā),小編建議Java和Python最好都學(xué)習(xí)一下(主學(xué)Java),語言本身就是工具。
對(duì)于小中型數(shù)據(jù)一般通過python就可以完成數(shù)據(jù)分析,對(duì)于大數(shù)據(jù)的數(shù)據(jù)分析需要使用分布式數(shù)據(jù)存儲(chǔ)和計(jì)算技術(shù),一些常用的工具,hadoop,hive,spark,flink等。
掌握數(shù)據(jù)可視化工具使用,可以幫助我們快速了解業(yè)務(wù)數(shù)據(jù),比如pyecharts,seaborn,plotly,matplotlib等
在進(jìn)行python數(shù)據(jù)分析時(shí)候,可以借助一些工具庫快速完成,比如pandas,numpy
一般公司中多用python來進(jìn)行數(shù)據(jù)分析,畢竟數(shù)據(jù)科學(xué)狠多插件都非常的好用,希望對(duì)你有幫助,讓我們共同進(jìn)步。
0
回答0
回答0
回答0
回答10
回答10
回答0
回答1
回答0
回答3
回答