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

熱線電話:13121318867

登錄
首頁精彩閱讀Python能用來做什么?以下是Python的三大主要用途
Python能用來做什么?以下是Python的三大主要用途
2018-07-01
收藏

Python能用來做什么?以下是Python的三大主要用途

如果你想學Python,或者你剛開始學習Python,那么你可能會問:“我能用Python做什么?”

這個問題不好回答,因為Python有很多用途。

但是隨著時間,我發(fā)現(xiàn)有Python主要有以下三大主要應用:

· Web開發(fā)

· 數(shù)據(jù)科學

包括機器學習、數(shù)據(jù)分析和數(shù)據(jù)可視化

· 腳本

讓我們來依次介紹。

一、Web開發(fā)

Django和Flask等基于Python的Web框架最近在Web開發(fā)中非常流行。

這些Web框架可以幫助你用Python編寫服務器端代碼(后端代碼)。這是在你的額服務器上運行的代碼,而不是運行在用戶設(shè)備和瀏覽器的代碼(前端代碼)。

為什么需要Web框架

因為用Web框架可以更容易地構(gòu)建通用后端邏輯。這包括將不同的URL映射到Python代碼塊,處理數(shù)據(jù)庫以及生成用戶在瀏覽器中看到的HTML文件。

應該使用哪種Python Web框架

Django和Flask是最流行的兩種Python Web框架。如果你剛剛?cè)腴T,我建議使用其中一種。

Django和Flask有什么區(qū)別

Gareth Dwyer 關(guān)于這個問題有一篇出色的文章,在這里我引用幾段:

主要區(qū)別

Flask:能夠?qū)崿F(xiàn)簡單、靈活和細致的控制。并能讓你自己決定實現(xiàn)方式。

Django:提供了全面的體驗:你可以獲得管理面板、數(shù)據(jù)庫接口、ORM(對象關(guān)系映射)以及開箱即用的應用程序和項目的目錄結(jié)構(gòu)。

如何選擇

Flask:如果你關(guān)注的是經(jīng)驗和學習的機會,或者你想更多地控制使用哪些組件,比如你想使用哪些數(shù)據(jù)庫以及如何與其進行交互。

Django:如果你關(guān)注最終產(chǎn)品,或者你正在研究一個簡單的應用,比如新聞網(wǎng)站、網(wǎng)店或博客,并且你希望有單一實現(xiàn)的方式。

換句話說,如果你是初學者,F(xiàn)lask可能是更好的選擇,因為它要掌握的組件更少。此外,如果你想要更多的定制,那就選Flask。

根據(jù)我的數(shù)據(jù)工程師朋友Jonathan T Ho的說法,由于Flask 的靈活性,在創(chuàng)建REST API時,F(xiàn)lask 比Django 更適合。

另一方面,如果你想直接構(gòu)建一些東西,Django可能會讓你更快實現(xiàn)。

二、數(shù)據(jù)科學

數(shù)據(jù)科學,這里包括機器學習,數(shù)據(jù)分析和數(shù)據(jù)可視化。

機器學習是什么

假設(shè)你想開發(fā)一個能夠自動檢測圖片內(nèi)容的程序。給出圖1,你希望程序識別這是一只狗。

圖1

給出圖2,希望程序能識別這是一張桌子。

圖2

你可能會說,我可以寫一些代碼來做到這點。例如,如果圖片中有很多淺棕色像素,那么可以識別是狗。

或者可以檢測圖片中的邊緣,如果有很多直的邊緣,那么就是桌子。

但這種方法很快就不好用了。如果圖片中的狗不是棕色毛的怎么辦?如果圖片只顯示桌子的圓形部分怎么辦?

這里就需要用到機器學習了。

機器學習通過實現(xiàn)算法,該算法能夠自動檢測輸入中的模式。

例如,你將1000張狗的圖片和1000張桌子的圖片輸入給機器學習算法,讓它掌握狗和桌子間的區(qū)別。那么當你給出新的圖片讓它識別是狗還是桌子時,它就能夠進行判斷。

這有點類似孩子學習新事物的方式。孩子是如何學習認知狗或桌子的呢?就是通過大量的例子。

你不會明確告訴孩子:“如果某個毛茸茸的東西有淺棕色的毛發(fā),那么就可能是狗。”

你會說,“這是狗,這也是狗。而這是桌子,那個也是桌子?!?

機器學習算法的方式大致相同。

我們可以將相同的想法應用于:

· 推薦系統(tǒng)

(比如YouTube,亞馬遜和Netflix)

· 人臉識別

· 語音識別

以及其他應用。

你聽過的熱門機器學習算法包括:

· 神經(jīng)網(wǎng)絡

· 深度學習

· 支持向量機

· 隨機森林

你可以使用上述任何算法來解決前面提到的圖片標簽問題。

將Python用于機器學習

有一些熱門的機器學習庫和Python框架。其中兩個最熱門的是scikit-learn和TensorFlow。

· scikit-learn帶有一些內(nèi)置的熱門機器學習算法。

· TensorFlow是一個低級庫,能讓你創(chuàng)建自定義機器學習算法。

如果你剛開始進行機器學習項目,我會建議你先從scikit-learn開始。如果你開始遇到效率問題,那么可以使用TensorFlow。

數(shù)據(jù)分析和數(shù)據(jù)可視化

假設(shè)你在一家在線銷售產(chǎn)品的公司工作。作為數(shù)據(jù)分析師,你會繪制這樣的條形圖

條形圖1 - 用Python生成

從這張圖中可以看到在某個周日,男性用戶購買了400多件產(chǎn)品,女性用戶購買了350件產(chǎn)品。

作為數(shù)據(jù)分析師,對此你會提出一些可能的解釋。明顯的解釋是,該產(chǎn)品在男性用戶中更受歡迎。另一種是樣本量太小,而這種差異是偶然的。還可能呢是由于某種原因,男性往往在周日才購買該產(chǎn)品。

為了理解哪種解釋是正確的,你可以繪制另一個圖。

折線圖1 - 用Python生成

不止看周日的數(shù)據(jù),還要看到一周的數(shù)據(jù)。從這張圖表中可以看出,在不同的日子里這種差異比較一致。

從這個分析中你會得出結(jié)論:這種產(chǎn)品在男性中比在女性中更受歡迎。

但如果你看到像這樣的圖表呢?

折線圖2 - 用Python生成

那么,怎么解釋周日的差異呢?

你可能會說,也許出于某種原因男性只在周日才會更多地購買這款產(chǎn)品?;蛟S這只是巧合。

我在谷歌和微軟工作時所做的數(shù)據(jù)分析工作與這個例子非常相似,只是更復雜一些。在谷歌時我使用Python進行分析,而我在微軟使用JavaScript。

在這兩家公司我都使用SQL從數(shù)據(jù)庫中提取數(shù)據(jù)。然后,我用Python和Matplotlib(在谷歌)或JavaScript和D3.js(在微軟)來可視化和分析這些數(shù)據(jù)。

使用Python進行數(shù)據(jù)分析/可視化

進行數(shù)據(jù)可視化時,Matplotlib是非常熱門的庫。

Matplotlib很棒,因為:

· 容易上手

· seaborn等庫是基于它的,學習Matplotlib可以幫助你以后學習其他庫。

如何用Python學習數(shù)據(jù)分析/可視化

你首先應該了解數(shù)據(jù)分析和可視化的基礎(chǔ)知識。在學習了數(shù)據(jù)分析和可視化的基礎(chǔ)知識之后,學習統(tǒng)計學基礎(chǔ)知識也將會很有幫助。

三、腳本

什么是腳本?

腳本通常是指編寫能夠自動執(zhí)行簡單任務的小程序。

我曾經(jīng)在日本的一家小型創(chuàng)業(yè)公司工作,公司有郵件支持系統(tǒng),這用來回復客戶通過郵件發(fā)送給我們的問題。

在那兒工作時,我的任務是計算包含關(guān)鍵字的郵件數(shù)量,以便分析我們收到的電子郵件。這可以手動完成,但我寫了一個簡單的腳本來自動執(zhí)行此任務。

當時我們使用了Ruby,但對于這類任務Python也是不錯的選擇。Python適合這類任務,因為它語法簡單,易于編寫,而且進行測試也很快。

其他用途

嵌入式應用

我不是這方面的專家,但我知道Python可以與Rasberry Pi一起用,在硬件愛好者中很流行。

游戲開發(fā)

你可以用PyGame來開發(fā)游戲,但這并不是最受歡迎的游戲引擎。你可以用它來開發(fā)業(yè)余愛好項目,但如果你對游戲開發(fā)很認真,建議不要選它。

我建議使用Unity的C#,這是最受歡迎的游戲引擎之一。它能讓你為許多平臺開發(fā)游戲,包括Mac、Windows、iOS和Android。

桌面應用

你可以用Python的Tkinter,但這并不是最熱門的選擇。Java,C#和C ++等語言似乎更受歡迎。

最近,一些公司也開始使用JavaScript來開發(fā)桌面應用程序。例如,Slack的桌面應用是Electron構(gòu)建的。它能讓你用JavaScript構(gòu)建桌面應用程序。

就個人而言,如果我要開發(fā)桌面應用,我會選擇使用JavaScript。它能讓你重新使用網(wǎng)絡版本的一些代碼。

當然,我并不是桌面應用的專家,所以如果你有不同的看法,評論中告訴我。

Python 3還是Python 2

我會推薦Python 3,因為它更新而且更受歡迎。

后端代碼與前端代碼的區(qū)別

假設(shè)你想開發(fā)類似Instagram的產(chǎn)品,那么你需要為想要支持類型的設(shè)備創(chuàng)建前端代碼。

你可能會用到:

· 面向iOS端的Swift 

· 面向Android的Java

· 面向Web瀏覽器的JavaScript

每組代碼將在每種類型的設(shè)備上運行。這類代碼將決定應用的布局樣式,點擊按鍵的樣式等。

但,您還需要存儲用戶信息和照片的功能。你要將它們存儲在服務器上,而不僅僅存儲在用戶的設(shè)備上,以便每個用戶的關(guān)注者都可以查看其照片。

這時需要用到后端代碼/服務器端代碼。你需要編寫后端代碼來執(zhí)行以下操作:

· 記錄關(guān)注情況

· 壓縮照片,從而不占用太多存儲空間

· 在發(fā)現(xiàn)功能中向每個用戶推薦照片和新帳戶

這是后端代碼和前端代碼之間的區(qū)別。

順便說一下,Python不是編寫后端代碼的唯一選擇,還有基于JavaScript的Node.js等選擇。


數(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)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 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); }