99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀如何用Python進行數(shù)據(jù)分析?
如何用Python進行數(shù)據(jù)分析?
2019-01-14
收藏


本文為CDA數(shù)據(jù)分析研究院原創(chuàng)作品,轉(zhuǎn)載需授權(quán)


1.為什么選擇Python進行數(shù)據(jù)分析?


Python是一門動態(tài)的、面向?qū)ο蟮哪_本語言,同時也是一門簡約,通俗易懂的編程語言。Python入門簡單,代碼可讀性強,一段好的Python代碼,閱讀起來像是在讀一篇外語文章。Python這種特性稱為“偽代碼”,它可以使你只關(guān)心完成什么樣的工作任務(wù),而不是糾結(jié)于Python的語法。


另外,Python是開源的,它擁有非常多優(yōu)秀的庫,可以用于數(shù)據(jù)分析及其他領(lǐng)域。更重要的是,Python與最受歡迎的開源大數(shù)據(jù)平臺Hadoop具有很好的兼容性。因此,學(xué)習(xí)Python對于有志于向大數(shù)據(jù)分析崗位發(fā)展的數(shù)據(jù)分析師來說,是一件非常節(jié)省學(xué)習(xí)成本的事。


Python的眾多優(yōu)點讓它成為最受歡迎的程序設(shè)計語言之一,國內(nèi)外許多公司也已經(jīng)在使用Python,例YouTube,Google,阿里云等等。


2.編程基礎(chǔ)


要學(xué)習(xí)如何用Python進行數(shù)據(jù)分析, CDA數(shù)據(jù)分析師建議第一步是要了解一些Python的編程基礎(chǔ),知道Python的數(shù)據(jù)結(jié)構(gòu),什么是向量、列表、數(shù)組、字典等等;了解Python的各種函數(shù)及模塊。下圖整理了這一階段要掌握的知識點:


3.數(shù)據(jù)分析流程

Python是數(shù)據(jù)分析利器,掌握了Python的編程基礎(chǔ)后,就可以逐漸進入數(shù)據(jù)分析的奇妙世界。CDA數(shù)據(jù)分析師認為一個完整的數(shù)據(jù)分析項目大致可分為以下五個流程:

1)數(shù)據(jù)獲取

一般有數(shù)據(jù)分析師崗位需求的公司都會有自己的數(shù)據(jù)庫,數(shù)據(jù)分析師可以通過SQL查詢語句來獲取數(shù)據(jù)庫中想要數(shù)據(jù)。Python已經(jīng)具有連接sql server、mysql、orcale等主流數(shù)據(jù)庫的接口包,比如pymssql、pymysql、cx_Oracle等。

而獲取外部數(shù)據(jù)主要有兩種獲取方式,一種是獲取國內(nèi)一些網(wǎng)站上公開的數(shù)據(jù)資料,例如國家統(tǒng)計局;一種是通過編寫爬蟲代碼自動爬取數(shù)據(jù)。如果希望使用Python爬蟲來獲取數(shù)據(jù),我們可以使用以下Python工具:

Requests-主要用于爬取數(shù)據(jù)時發(fā)出請求操作。

BeautifulSoup-用于爬取數(shù)據(jù)時讀取XML和HTML類型的數(shù)據(jù),解析為對象進而處理。

Scapy-一個處理交互式數(shù)據(jù)的包,可以解碼大部分網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)包。


2)數(shù)據(jù)存儲

對于數(shù)據(jù)量不大的項目,可以使用excel來進行存儲和處理,但對于數(shù)據(jù)量過萬的項目,使用數(shù)據(jù)庫來存儲與管理會更高效便捷。


3)數(shù)據(jù)預(yù)處理

數(shù)據(jù)預(yù)處理也稱數(shù)據(jù)清洗。大多數(shù)情況下,我們拿到手的數(shù)據(jù)是格式不一致,存在異常值、缺失值等問題的,而不同項目數(shù)據(jù)預(yù)處理步驟的方法也不一樣。CDA數(shù)據(jù)分析師認為數(shù)據(jù)分析有80%的工作都在處理數(shù)據(jù)。如果選擇Python作為數(shù)據(jù)清洗的工具的話,我們可以使用Numpy和Pandas這兩個工具庫:

Numpy - 用于Python中的科學(xué)計算。它非常適用于與線性代數(shù),傅里葉變換和隨機數(shù)相關(guān)的運算。它可以很好地處理多維數(shù)據(jù),并兼容各種數(shù)據(jù)庫。

Pandas –Pandas是基于Numpy擴展而來的,可以提供一系列函數(shù)來處理數(shù)據(jù)結(jié)構(gòu)和運算,如時間序列等。


4)建模與分析

這一階段首先要清楚數(shù)據(jù)的結(jié)構(gòu),結(jié)合項目需求來選取模型。

常見的數(shù)據(jù)挖掘模型有:

在這一階段,Python也具有很好的工具庫支持我們的建模工作:

scikit-learn-適用Python實現(xiàn)的機器學(xué)習(xí)算法庫。scikit-learn可以實現(xiàn)數(shù)據(jù)預(yù)處理、分類、回歸、降維、模型選擇等常用的機器學(xué)習(xí)算法。

Tensorflow-適用于深度學(xué)習(xí)且數(shù)據(jù)處理需求不高的項目。這類項目往往數(shù)據(jù)量較大,且最終需要的精度更高。


5)可視化分析

數(shù)據(jù)分析最后一步是撰寫數(shù)據(jù)分析報告,這也是數(shù)據(jù)可視化的一個過程。在數(shù)據(jù)可視化方面,Python目前主流的可視化工具有:

Matplotlib-主要用于二維繪圖,它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。

Seaborn-是基于matplotlib產(chǎn)生的一個模塊,專攻于統(tǒng)計可視化,可以和Pandas進行無縫鏈接。

按照這個流程,每個階段所涉及的知識點可以細分如下:

從上圖我們也可以得知,在整個數(shù)據(jù)分析流程,無論是數(shù)據(jù)提取、數(shù)據(jù)預(yù)處理、數(shù)據(jù)建模和分析,還是數(shù)據(jù)可視化,Python目前已經(jīng)可以很好地支持我們的數(shù)據(jù)分析工作。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }