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