Python那麼火,到底能用來作什麼?咱們來講說Python3的主要應用

若是您正在考慮學習Python,或者您最近剛開始學習,前端

您可能會問本身:「我到底能夠用Python作什麼?」web

這是個棘手的問題,由於Python有不少用途。算法

可是隨着時間的推移,數據庫

我發現Python主要可用於一下三個方面:後端

  • Web開發
  • 數據科學——包括機器學習、數據分析和數據可視化
  • 腳本編寫

咱們就依次來看看吧。瀏覽器

 

1、Web開發

像Django和Flask這樣基於Python的Web框架最近在web開發中變得很是流行。服務器

這些web框架幫助您用Python建立服務器端代碼(後端代碼)。網絡

這些代碼在您的服務器上而不是在用戶設備以及瀏覽器上(前端代碼)運行。app

若是您不熟悉後端代碼和前端代碼之間的區別,請參閱下面腳註。框架

可是,等等,我爲何須要web框架呢?

那是由於web框架讓構建通用後端邏輯變得更簡單了。

這包括把不一樣的URL映射到Python代碼塊、處理數據庫和生成用戶在瀏覽器中看到的HTML文件。

我應該用哪一個Python web框架?

Django和Flask是兩種最流行的Python web框架。

若是您剛剛開始學習,那麼能夠用它們中的任何一個。

Django和Flask有什麼區別?

主要的對比:

  • Flask提供簡潔、靈活和細粒度控制。它非常客觀(讓您決定如何實現想要的東西)。
  • Django提供一種一應俱全的體驗:您能夠得到管理面板、數據庫接口、ORM(object-relational mappling,對象關係映射),還有開箱即用的應用程序和項目的目錄結構。

您應該選擇:

  • Flask,若是您專一於體驗和學習機會,或者您想對選用哪一個組件有更大的控制權(例如您想使用哪一個數據庫和如何與它們交互)。
  • Django,若是你專一於最終的產品。特別是若是您正在作一個簡單的應用程序(如一個新聞網站、電子商店,或者博客)而且但願有一個直接明瞭的作法。

換句話說,若是您是位初學者,Flask多是個更好的選擇,由於用到的組件比較少。

若是您想要更多的定製,那麼Flask也是個更好的選擇。

並且,根據個人數據工程師朋友的見解,

Flask更適合建立那些所謂的REST API的東西,由於它比Django更靈活。

另外一方面,

若是您想構建一些簡單的東西,

Django會讓您更快地達到目標。

好,咱們接着談談下一個!

2、數據科學 —— 包括機器學習、數據分析和數據可視化

首先,咱們來回顧一下什麼是機器學習。

我認爲,解釋什麼是機器學習的最好方法莫過於舉個例子。

假設您想開發一個程序用於自動檢測圖片中的內容。

所以,對於下面的這張圖片(圖片1),您但願您的程序能識別出這是條狗。

Python那麼火,到底能用來作什麼?咱們來講說Python3的主要應用

圖1

而對於下面的這張圖片(圖片2),您但願您的程序能識別出它是張桌子。

Python那麼火,到底能用來作什麼?咱們來講說Python3的主要應用

圖2

您也許會說,我能夠用幾行代碼搞定。例如,若是在圖片上有不少淡棕色的像素,那麼咱們能夠說那是狗。

或者,您能夠找到在照片中檢測邊緣的方法。而後,您也許會說,若是有不少直邊,那麼那就是一張桌子。

可是,這種方法很快就遇到麻煩了。若是圖片上是條沒有棕色毛髮的白狗怎麼辦?若是圖片上顯示的只是桌子的圓形部分呢?

輪到機器學習大顯身手了。

小編推薦一個學Python的學習裙【 二二七,四三五,四五零 】,不管你是大牛仍是小白,是想轉行仍是想入行均可以來了解一塊兒進步一塊兒學習!裙內有不少乾貨和技術分享

機器學習可實現一些算法,能自動檢測給定輸入中的模式。

好比,您給機器學習的算法提供1000張狗的照片和1000張桌子的照片。那麼,它將會學習區別狗和桌子。當您給出一張狗或桌子的新圖片時,它將可以識別出是狗仍是桌子。

我認爲,這和嬰兒學習新事物有點相似。嬰兒是如何知道同樣東西看起來像狗,而另外一樣東西看起來像桌子呢?可能就是從大量的例子中學到的。

您也許不會明確地告訴一個嬰兒:「若是同樣東西是毛茸茸的,而且有着淡棕色的毛髮,那麼它多是條狗。」

您可能只是說:「那是條狗。這也是條狗。這是桌子。那也是桌子。」

機器學習算法的工做方式大體相同。

您能夠把一樣的想法應用於:

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

您可能據說過的流行的機器學習算法包括:

  • 神經網絡
  • 深度學習
  • 支持向量機
  • 隨機森林

您可使用任何一個上述算法來解決我剛纔解釋過的圖片標註問題。

3、將Python用於機器學習

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

  • scikit-learn附帶了一些更流行的內置機器學習算法。我剛纔提到了其中的幾個。
  • TensorFlow更像是個低級庫,它容許您構建自定義機器學習算法。

若是您剛開始一個機器學習項目,那麼我建議您先用scikit-learn。若是您開始遇到效率問題,那麼我建議用TensorFlow。

請注意,您須要微積分和線性代數的基本知識以理解這些課程中的某些內容。

4、那麼數據分析和數據可視化呢?

爲了幫助您理解,我在這裏給您舉個簡單的例子。假設,您爲一家在線銷售產品的公司工做。

那麼,做爲數據分析師,您也許會畫一個相似的條形圖。

Python那麼火,到底能用來作什麼?咱們來講說Python3的主要應用

條形圖1-由Python生成

從這張圖上,咱們能夠看到,在某個特定的週日,對於某件產品來講,男性購買了400多件,而女性購買了大約350件。

做爲一個數據分析師,您也許會對其中的差別作出幾個可能的解釋。

一個很顯然的可能解釋是,該產品在男性中比在女性中更流行。另外一個可能的解釋是,樣本量過小,這個差別是偶爾產生的。還有一個可能的解釋是,在週日,因爲某種緣由,男性比女性更傾向於購買該產品。

爲了搞明白哪一個解釋是正確的,您可能繪製另外一張圖,以下圖所示:

Python那麼火,到底能用來作什麼?咱們來講說Python3的主要應用

折線圖1-由Python生成

咱們再也不只顯示週日的數據,而是整整一週的數據。正如您所見,從這張圖中,咱們能夠看到,這種差別在不一樣的日子裏很一致。

從這個簡單的分析中,您可能得出告終論,對這種差別,一個最有說服力的解釋就是,這個產品更受男性而不是女性歡迎。

另外一方面,若是您看到是以下所示的圖呢?

Python那麼火,到底能用來作什麼?咱們來講說Python3的主要應用

折線圖2-一樣由Python生成

那麼,如何解釋出如今週日的差別呢?

您也許會說,也許出於某種緣由,男性在週日更傾向於購買該產品。或者,也許只是巧合,男性在週日購買了更多的該產品。

好了,這是個簡化的例子,展現了數據分析在真實世界中看起來的樣子。

我在谷歌和微軟工做的時候作過數據分析,跟這個例子很是類似,只是更復雜一些罷了。事實上,我在谷歌工做時,是用Python來作這種分析,而我在微軟的時候,用的是JavaScript。

在這兩家公司工做的時候,我用SQL從數據庫中提取數據。而後,我會用Python和Matplotlib(在谷歌工做時)或JavaScrip和D3.js(在微軟工做時)進行數據可視化和分析。

5、用Python進行數據分析/可視化

最流行的數據可視化庫之一是Matplotlib。

剛開始學習的話,它是個不錯的庫,由於:

  • 它容易上手
  • 其餘一些庫,如seaborn是以它爲基礎的。所以,學習Matplotlib能夠幫助您隨後學習其餘庫。

6、選Python 3仍是Python 2?

我會推薦Python 3,由於它更現代化,而且目前它更受歡迎。

腳註:對於後端代碼和前端代碼的的說明(萬一您對這些術語不熟悉)。

假設,您想作個相似於Instagram的東西。

那麼,您須要爲每種想支持的設備建立前端代碼:

  • Swift用於iOS設備
  • Java用於安卓設備
  • JavaScript用於web瀏覽器

每組代碼都將在對應類型的設備/瀏覽器上運行。這組代碼將決定應用的佈局看上去的樣子,單擊時按鈕的外觀等等。

可是,您仍然須要存儲用戶信息和照片的能力。除了在用戶的設備商儲存這些信息,您還會但願將這些信息儲存在服務器上,這樣,每一個用戶的關注者就能看到用戶的照片。

這裏就是後端代碼/服務器端代碼的用武之地了。您須要編寫後端代碼以執行如下操做:

  • 持續跟蹤誰在關注誰
  • 壓縮照片,以避免佔據太多存儲空間
  • 在發現功能中給每一個用戶推薦照片和新帳號

好了,這就是後端代碼和前段代碼之間的區別。

順便說一下,Python不是編寫後端/服務器端代碼的惟一好選擇。還有不少其餘流行的選擇,包括Node.js,它是基於JavaScript的。

相關文章
相關標籤/搜索