中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Python那么火,到底可以用來(lái)做什么?

2018-08-06    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
如果您正在考慮學(xué)習(xí)Python,或者您最近剛開(kāi)始學(xué)習(xí),您可能會(huì)問(wèn)自己:

“我到底可以用Python做什么?”

這是個(gè)棘手的問(wèn)題,因?yàn)镻ython有很多用途。但是隨著時(shí)間的推移,我發(fā)現(xiàn)Python主要可用于一下三個(gè)方面:

  • Web開(kāi)發(fā)
  • 數(shù)據(jù)科學(xué)——包括機(jī)器學(xué)習(xí)、數(shù)據(jù)分析和數(shù)據(jù)可視化
  • 腳本編寫(xiě)

我們就依次來(lái)看看吧。

 

Web開(kāi)發(fā)

 

像Django和Flask這樣基于Python的Web框架最近在web開(kāi)發(fā)中變得非常流行。

這些web框架幫助您用Python創(chuàng)建服務(wù)器端代碼(后端代碼)。這些代碼在您的服務(wù)器上而不是在用戶設(shè)備以及瀏覽器上(前端代碼)運(yùn)行。如果您不熟悉后端代碼和前端代碼之間的區(qū)別,請(qǐng)參閱下面腳注。

 

但是,等等,我為什么需要web框架呢?

那是因?yàn)閣eb框架讓構(gòu)建通用后端邏輯變得更簡(jiǎn)單了。這包括把不同的URL映射到Python代碼塊、處理數(shù)據(jù)庫(kù)和生成用戶在瀏覽器中看到的HTML文件。

我應(yīng)該用哪個(gè)Python web框架?

DjangoFlask是兩種最流行的Python web框架。如果您剛剛開(kāi)始學(xué)習(xí),那么可以用它們中的任何一個(gè)。

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

Gareth Dwyer有篇關(guān)于這個(gè)話題的文章寫(xiě)得非常好,我在這里引用一下:

<引用開(kāi)始>

主要的對(duì)比:

  • Flask提供簡(jiǎn)潔、靈活和細(xì)粒度控制。它很是客觀(讓您決定如何實(shí)現(xiàn)想要的東西)。
  • Django提供一種包羅萬(wàn)象的體驗(yàn):您可以獲得管理面板、數(shù)據(jù)庫(kù)接口、ORM(object-relational mappling,對(duì)象關(guān)系映射),還有開(kāi)箱即用的應(yīng)用程序和項(xiàng)目的目錄結(jié)構(gòu)。

您應(yīng)該選擇:

  • Flask,如果您專注于體驗(yàn)和學(xué)習(xí)機(jī)會(huì),或者您想對(duì)選用哪個(gè)組件有更大的控制權(quán)(例如您想使用哪個(gè)數(shù)據(jù)庫(kù)和如何與它們交互)。
  • Django,如果你專注于最終的產(chǎn)品。特別是如果您正在做一個(gè)簡(jiǎn)單的應(yīng)用程序(如一個(gè)新聞網(wǎng)站、電子商店,或者博客)并且希望有一個(gè)直接明了的做法。

</引用結(jié)束>

換句話說(shuō),如果您是位初學(xué)者,F(xiàn)lask可能是個(gè)更好的選擇,因?yàn)橛玫降慕M件比較少。如果您想要更多的定制,那么Flask也是個(gè)更好的選擇。

而且,根據(jù)我的數(shù)據(jù)工程師朋友Jonathan T Ho的看法,F(xiàn)lask更適合創(chuàng)建那些所謂的REST API的東西,因?yàn)樗菵jango更靈活。

另一方面,如果您想構(gòu)建一些簡(jiǎn)單的東西,Django會(huì)讓您更快地達(dá)到目標(biāo)。

好,我們接著談?wù)勏乱粋(gè)!

 

數(shù)據(jù)科學(xué) —— 包括機(jī)器學(xué)習(xí)、數(shù)據(jù)分析和數(shù)據(jù)可視化

 

首先,我們來(lái)回顧一下什么是機(jī)器學(xué)習(xí)。

我認(rèn)為,解釋什么是機(jī)器學(xué)習(xí)的最好方法莫過(guò)于舉個(gè)例子。

假設(shè)您想開(kāi)發(fā)一個(gè)程序用于自動(dòng)檢測(cè)圖片中的內(nèi)容。

因此,對(duì)于下面的這張圖片(圖片1),您希望您的程序能識(shí)別出這是條狗。

??

圖1

而對(duì)于下面的這張圖片(圖片2),您希望您的程序能識(shí)別出它是張桌子。

??

圖2

您也許會(huì)說(shuō),我可以用幾行代碼搞定。例如,如果在圖片上有很多淡棕色的像素,那么我們可以說(shuō)那是狗。

或者,您可以找到在照片中檢測(cè)邊緣的方法。然后,您也許會(huì)說(shuō),如果有很多直邊,那么那就是一張桌子。

但是,這種方法很快就遇到麻煩了。如果圖片上是條沒(méi)有棕色毛發(fā)的白狗怎么辦?如果圖片上顯示的只是桌子的圓形部分呢?

輪到機(jī)器學(xué)習(xí)大顯身手了。

機(jī)器學(xué)習(xí)可實(shí)現(xiàn)一些算法,能自動(dòng)檢測(cè)給定輸入中的模式。

比如,您給機(jī)器學(xué)習(xí)的算法提供1000張狗的照片和1000張桌子的照片。那么,它將會(huì)學(xué)習(xí)區(qū)別狗和桌子。當(dāng)您給出一張狗或桌子的新圖片時(shí),它將能夠識(shí)別出是狗還是桌子。

我認(rèn)為,這和嬰兒學(xué)習(xí)新事物有點(diǎn)類似。嬰兒是如何知道一樣?xùn)|西看起來(lái)像狗,而另一樣?xùn)|西看起來(lái)像桌子呢?可能就是從大量的例子中學(xué)到的。

您也許不會(huì)明確地告訴一個(gè)嬰兒:“如果一樣?xùn)|西是毛茸茸的,并且有著淡棕色的毛發(fā),那么它可能是條狗。”

您可能只是說(shuō):“那是條狗。這也是條狗。這是桌子。那也是桌子。”

機(jī)器學(xué)習(xí)算法的工作方式大致相同。

您可以把同樣的想法應(yīng)用于:

  • 推薦系統(tǒng)(像YouTube、Amazon和Netflix在用的)
  • 面部識(shí)別
  • 聲音識(shí)別

您可能聽(tīng)說(shuō)過(guò)的流行的機(jī)器學(xué)習(xí)算法包括:

  • 神經(jīng)網(wǎng)絡(luò)
  • 深度學(xué)習(xí)
  • 支持向量機(jī)
  • 隨機(jī)森林

您可以使用任何一個(gè)上述算法來(lái)解決我剛才解釋過(guò)的圖片標(biāo)注問(wèn)題。

 

將Python用于機(jī)器學(xué)習(xí)

 

有一些流行的Python機(jī)器學(xué)習(xí)庫(kù)和框架,其中最流行的兩個(gè)是scikit-learnTensorFlow。

  • scikit-learn附帶了一些更流行的內(nèi)置機(jī)器學(xué)習(xí)算法。我剛才提到了其中的幾個(gè)。
  • TensorFlow更像是個(gè)低級(jí)庫(kù),它允許您構(gòu)建自定義機(jī)器學(xué)習(xí)算法。

如果您剛開(kāi)始一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目,那么我建議您先用scikit-learn。如果您開(kāi)始遇到效率問(wèn)題,那么我建議用TensorFlow。

我應(yīng)該如何學(xué)習(xí)機(jī)器學(xué)習(xí)呢?

要學(xué)習(xí)機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)的話,我建議選擇斯坦;蚣又堇砉W(xué)院的機(jī)器學(xué)習(xí)課程。

請(qǐng)注意,您需要微積分和線性代數(shù)的基本知識(shí)以理解這些課程中的某些內(nèi)容。

然后,我會(huì)用Kaggle來(lái)練習(xí)從課程中學(xué)到的知識(shí)。Kaggle是個(gè)網(wǎng)站,大家在這個(gè)網(wǎng)站上比試誰(shuí)能對(duì)一個(gè)給定的問(wèn)題構(gòu)建出最佳的機(jī)器學(xué)習(xí)算法。網(wǎng)站上也有給初學(xué)者用的好教程。

 

那么數(shù)據(jù)分析和數(shù)據(jù)可視化呢?

 

為了幫助您理解,我在這里給您舉個(gè)簡(jiǎn)單的例子。假設(shè),您為一家在線銷售產(chǎn)品的公司工作。

那么,作為數(shù)據(jù)分析師,您也許會(huì)畫(huà)一個(gè)類似的條形圖。

??

條形圖1-由Python生成

從這張圖上,我們可以看到,在某個(gè)特定的周日,對(duì)于某件產(chǎn)品來(lái)說(shuō),男性購(gòu)買(mǎi)了400多件,而女性購(gòu)買(mǎi)了大約350件。

作為一個(gè)數(shù)據(jù)分析師,您也許會(huì)對(duì)其中的差異做出幾個(gè)可能的解釋。

一個(gè)很顯然的可能解釋是,該產(chǎn)品在男性中比在女性中更流行。另一個(gè)可能的解釋是,樣本量太小,這個(gè)差異是偶爾產(chǎn)生的。還有一個(gè)可能的解釋是,在周日,由于某種原因,男性比女性更傾向于購(gòu)買(mǎi)該產(chǎn)品。

為了搞明白哪個(gè)解釋是正確的,您可能繪制另一張圖,如下圖所示:

??

折線圖1-由Python生成

我們不再只顯示周日的數(shù)據(jù),而是整整一周的數(shù)據(jù)。正如您所見(jiàn),從這張圖中,我們可以看到,這種差異在不同的日子里很一致。

從這個(gè)簡(jiǎn)單的分析中,您可能得出了結(jié)論,對(duì)這種差異,一個(gè)最有說(shuō)服力的解釋就是,這個(gè)產(chǎn)品更受男性而不是女性歡迎。

另一方面,如果您看到是如下所示的圖呢?

??

折線圖2-同樣由Python生成

那么,如何解釋出現(xiàn)在周日的差異呢?

您也許會(huì)說(shuō),也許出于某種原因,男性在周日更傾向于購(gòu)買(mǎi)該產(chǎn)品;蛘,也許只是巧合,男性在周日購(gòu)買(mǎi)了更多的該產(chǎn)品。

好了,這是個(gè)簡(jiǎn)化的例子,展示了數(shù)據(jù)分析在真實(shí)世界中看起來(lái)的樣子。

我在谷歌和微軟工作的時(shí)候做過(guò)數(shù)據(jù)分析,跟這個(gè)例子非常相似,只是更復(fù)雜一些罷了。事實(shí)上,我在谷歌工作時(shí),是用Python來(lái)做這種分析,而我在微軟的時(shí)候,用的是JavaScript。

在這兩家公司工作的時(shí)候,我用SQL從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)。然后,我會(huì)用Python和Matplotlib(在谷歌工作時(shí))或JavaScrip和D3.js(在微軟工作時(shí))進(jìn)行數(shù)據(jù)可視化和分析。

 

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

 

最流行的數(shù)據(jù)可視化庫(kù)之一是Matplotlib。

剛開(kāi)始學(xué)習(xí)的話,它是個(gè)不錯(cuò)的庫(kù),因?yàn)椋?/p>

  • 它容易上手
  • 其他一些庫(kù),如seaborn是以它為基礎(chǔ)的。因此,學(xué)習(xí)Matplotlib可以幫助您隨后學(xué)習(xí)其他庫(kù)。

我應(yīng)該如何學(xué)習(xí)用Python進(jìn)行數(shù)據(jù)分析/可視化?

首先,您應(yīng)該學(xué)習(xí)數(shù)據(jù)分析和可視化的基礎(chǔ)知識(shí)。我在網(wǎng)上沒(méi)有找到相關(guān)的好資源。因此,最終,我在YouTube上做了相關(guān)的視頻(用Python和Matplotlib進(jìn)行數(shù)據(jù)分析/可視化的入門(mén)課程)。

我還在Pluralsight上做了相關(guān)的整個(gè)課程,如果您報(bào)名參加他們的10天免費(fèi)試用,您就可以免費(fèi)獲得這個(gè)課程。

這兩個(gè)我都推薦給您。

學(xué)習(xí)了數(shù)據(jù)分析和可視化基礎(chǔ)知識(shí)之后,在Coursera和Khan Academy上學(xué)習(xí)統(tǒng)計(jì)的基礎(chǔ)知識(shí)也是很有幫助的。

 

腳本編寫(xiě)

 

什么是腳本編寫(xiě)?

通常,腳本編寫(xiě)是指編寫(xiě)小程序以讓簡(jiǎn)單任務(wù)自動(dòng)化。

我在這里給您舉個(gè)來(lái)自我個(gè)人經(jīng)驗(yàn)的例子。

我曾在日本的一家小型初創(chuàng)企業(yè)工作,我們有個(gè)電郵支持系統(tǒng),用來(lái)回復(fù)客戶通過(guò)電郵給我們提出的問(wèn)題。

我在那里工作的時(shí)候,我的任務(wù)是計(jì)算含有特定關(guān)鍵字的電郵數(shù)量,這樣我們才可以分析我們收到的電郵。

我們本來(lái)應(yīng)該用人工統(tǒng)計(jì),但是,我寫(xiě)了個(gè)簡(jiǎn)單的程序/簡(jiǎn)單的腳本來(lái)自動(dòng)完成該任務(wù)。

事實(shí)上,那時(shí)我們是用Ruby編寫(xiě)腳本,但是,對(duì)于這樣的任務(wù)來(lái)說(shuō),Python也是個(gè)不錯(cuò)的語(yǔ)言選擇。Python適合這種類型的任務(wù)主要是因?yàn)樗邢鄬?duì)簡(jiǎn)單的語(yǔ)法并且容易編寫(xiě)。用它來(lái)寫(xiě)些小程序并進(jìn)行測(cè)試花不了多少時(shí)間。

 

那些嵌入式應(yīng)用呢?

 

對(duì)于嵌入式應(yīng)用,我不在行,但是我知道Python可以配合Rasberry Pi工作。它在那些硬件發(fā)燒友中非常流行。

 

那么游戲呢?

 

您可以用PyGame庫(kù)來(lái)開(kāi)發(fā)游戲,但是,它不是最流行的游戲引擎。如果把游戲作為興趣愛(ài)好,您可以用它來(lái)構(gòu)建項(xiàng)目,但是,如果您真的要做游戲開(kāi)發(fā),我個(gè)人不建議選擇它。

相反,我推薦您用Unity的C#腳本,它是最流行的游戲引擎之一。它允許您在很多平臺(tái)上構(gòu)建游戲,這些平臺(tái)包括:Mac、Windows、iOS和安卓。

 

那么,桌面應(yīng)用呢?

 

您可以用Python的Tkinter來(lái)開(kāi)發(fā),但是它似乎不是最流行的選擇。

相反,用Java、C#和C++等語(yǔ)言開(kāi)發(fā)桌面應(yīng)用看起來(lái)更流行。

最近,一些公司也已經(jīng)開(kāi)始使用JavaScript來(lái)創(chuàng)建桌面應(yīng)用程序了。

比如,Slack的桌面應(yīng)用程序是用Electron來(lái)構(gòu)建的。它允許您用JavaScript來(lái)構(gòu)建桌面應(yīng)用。

就我個(gè)人來(lái)說(shuō),如果我要構(gòu)建一個(gè)桌面應(yīng)用,我會(huì)用JavaScript。它允許您復(fù)用web版本的某些代碼(如果有的話)。

 

選Python 3還是Python 2?

 

我會(huì)推薦Python 3,因?yàn)樗F(xiàn)代化,并且目前它更受歡迎。

腳注:對(duì)于后端代碼和前端代碼的的說(shuō)明(萬(wàn)一您對(duì)這些術(shù)語(yǔ)不熟悉)。

假設(shè),您想做個(gè)類似于Instagram的東西。

那么,您需要為每種想支持的設(shè)備創(chuàng)建前端代碼:

  • Swift用于iOS設(shè)備
  • Java用于安卓設(shè)備
  • JavaScript用于web瀏覽器

每組代碼都將在對(duì)應(yīng)類型的設(shè)備/瀏覽器上運(yùn)行。這組代碼將決定應(yīng)用的布局看上去的樣子,單擊時(shí)按鈕的外觀等等。

但是,您仍然需要存儲(chǔ)用戶信息和照片的能力。除了在用戶的設(shè)備商儲(chǔ)存這些信息,您還會(huì)希望將這些信息儲(chǔ)存在服務(wù)器上,這樣,每個(gè)用戶的關(guān)注者就能看到用戶的照片。

這里就是后端代碼/服務(wù)器端代碼的用武之地了。您需要編寫(xiě)后端代碼以執(zhí)行以下操作:

  • 持續(xù)跟蹤誰(shuí)在關(guān)注誰(shuí)
  • 壓縮照片,以免占據(jù)太多存儲(chǔ)空間
  • 在發(fā)現(xiàn)功能中給每個(gè)用戶推薦照片和新賬號(hào)

好了,這就是后端代碼和前段代碼之間的區(qū)別。

順便說(shuō)一下,Python不是編寫(xiě)后端/服務(wù)器端代碼的唯一好選擇。還有很多其他流行的選擇,包括Node.js,它是基于JavaScript的。

閱讀英文原文:What exactly can you do with Python? Here are Python’s 3 main applications.

標(biāo)簽: 代碼 服務(wù)器 服務(wù)器端 谷歌 腳本 數(shù)據(jù)分析 數(shù)據(jù)庫(kù) 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:讓大數(shù)據(jù)創(chuàng)造大價(jià)值 我國(guó)大數(shù)據(jù)發(fā)展具有獨(dú)特優(yōu)勢(shì)

下一篇:想做大數(shù)據(jù)可視化?來(lái)看騰訊高手的實(shí)戰(zhàn)案例!