歡迎光臨
每天分享高質量文章

Python能用來做什麼?這3大主要用途你一定要知道!

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

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

但是隨著時間,我發現有Python主要有以下三大主要應用:

  • Web開發

  • 資料科學包括機器學習、資料分析和資料視覺化

  • 指令碼

本文將依次介紹。

作者:YK Sugi

編譯:Mika

來源:CDA資料分析師(ID:cdacdacda)

01 Web開發

Django和Flask等基於Python的Web框架最近在Web開發中非常流行。

這些Web框架可以幫助你用Python編寫伺服器端程式碼(後端程式碼)。這是在你的額伺服器上執行的程式碼,而不是執行在使用者裝置和瀏覽器的程式碼(前端程式碼)。

1. 為什麼需要Web框架

因為用Web框架可以更容易地構建通用後端邏輯。這包括將不同的URL對映到Python程式碼塊,處理資料庫以及生成使用者在瀏覽器中看到的HTML檔案。

2. 應該使用哪種Python Web框架

Django和Flask是最流行的兩種Python Web框架。如果你剛剛入門,我建議使用其中一種。

3. Django和Flask有什麼區別

Gareth Dwyer 關於這個問題有一篇出色的文章,在這裡我取用幾段:

主要區別

Flask:能夠實現簡單、靈活和細緻的控制。並能讓你自己決定實現方式。

Django:提供了全面的體驗:你可以獲得管理面板、資料庫介面、ORM(物件關係對映)以及開箱即用的應用程式和專案的目錄結構。

如何選擇

Flask:如果你關註的是經驗和學習的機會,或者你想更多地控制使用哪些元件,比如你想使用哪些資料庫以及如何與其進行互動。

Django:如果你關註最終產品,或者你正在研究一個簡單的應用,比如新聞網站、網店或部落格,並且你希望有單一實現的方式。

換句話說,如果你是初學者,Flask可能是更好的選擇,因為它要掌握的元件更少。此外,如果你想要更多的定製,那就選Flask。

根據我的資料工程師朋友Jonathan T Ho的說法,由於Flask 的靈活性,在建立REST API時,Flask 比Django 更適合。

另一方面,如果你想直接構建一些東西,Django可能會讓你更快實現。

02 資料科學

資料科學,這裡包括機器學習,資料分析和資料視覺化。

1. 機器學習是什麼 

假設你想開發一個能夠自動檢測圖片內容的程式。給出圖1,你希望程式識別這是一隻狗。

▲圖1

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

▲圖2

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

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

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

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

機器學習透過實現演演算法,該演演算法能夠自動檢測輸入中的樣式。

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

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

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

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

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

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

  • 推薦系統比如YouTube,亞馬遜和Netflix

  • 人臉識別

  • 語音識別

以及其他應用。

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

  • 神經網路

  • 深度學習

  • 支援向量機

  • 隨機森林

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

2. 將Python用於機器學習

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

  • scikit-learn帶有一些內建的熱門機器學習演演算法。

  • TensorFlow是一個低階庫,能讓你建立自定義機器學習演演算法。

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

3. 資料分析和資料視覺化

假設你在一家線上銷售產品的公司工作。作為資料分析師,你會繪製這樣的條形圖。

▲條形圖1 – 用Python生成

從這張圖中可以看到在某個週日,男性使用者購買了400多件產品,女性使用者購買了350件產品。

作為資料分析師,對此你會提出一些可能的解釋。明顯的解釋是,該產品在男性使用者中更受歡迎。另一種是樣本量太小,而這種差異是偶然的。還可能呢是由於某種原因,男性往往在週日才購買該產品。

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

▲折線圖1 – 用Python生成

不止看週日的資料,還要看到一週的資料。從這張圖表中可以看出,在不同的日子裡這種差異比較一致。

從這個分析中你會得出結論:這種產品在男性中比在女性中更受歡迎。

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

▲折線圖2 – 用Python生成

那麼,怎麼解釋週日的差異呢?

你可能會說,也許出於某種原因男性只在週日才會更多地購買這款產品。或許這隻是巧合。

我在谷歌和微軟工作時所做的資料分析工作與這個例子非常相似,只是更複雜一些。在谷歌時我使用Python進行分析,而我在微軟使用JavaScript。

在這兩家公司我都使用SQL從資料庫中提取資料。然後,我用Python和Matplotlib(在谷歌)或JavaScript和D3.js(在微軟)來視覺化和分析這些資料。

4. 使用Python進行資料分析/視覺化

進行資料視覺化時,Matplotlib是非常熱門的庫。

Matplotlib很棒,因為:

  • 容易上手

  • seaborn等庫是基於它的,學習Matplotlib可以幫助你以後學習其他庫。

5. 如何用Python學習資料分析/視覺化

你首先應該瞭解資料分析和視覺化的基礎知識。在學習了資料分析和視覺化的基礎知識之後,學習統計學基礎知識也將會很有幫助。

03 指令碼

什麼是指令碼?

指令碼通常是指編寫能夠自動執行簡單任務的小程式。

我曾經在日本的一家小型創業公司工作,公司有郵件支援系統,這用來回覆客戶透過郵件傳送給我們的問題。

在那兒工作時,我的任務是計算包含關鍵字的郵件數量,以便分析我們收到的電子郵件。這可以手動完成,但我寫了一個簡單的指令碼來自動執行此任務。

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

04 其他用途

1. 嵌入式應用

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

2. 遊戲開發

你可以用PyGame來開發遊戲,但這並不是最受歡迎的遊戲引擎。你可以用它來開發業餘愛好專案,但如果你對遊戲開發很認真,建議不要選它。

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

3. 桌面應用

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

最近,一些公司也開始使用JavaScript來開發桌面應用程式。例如,Slack的桌面應用是Electron構建的。它能讓你用JavaScript構建桌面應用程式。

就個人而言,如果我要開發桌面應用,我會選擇使用JavaScript。它能讓你重新使用網路版本的一些程式碼。

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

4. Python 3還是Python 2

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

5. 後端程式碼與前端程式碼的區別

假設你想開發類似Instagram的產品,那麼你需要為想要支援型別的裝置建立前端程式碼。

你可能會用到:

  • 面向iOS端的Swift 

  • 面向Android的Java

  • 面向Web瀏覽器的JavaScript

每組程式碼將在每種型別的裝置上執行。這類程式碼將決定應用的佈局樣式,點選按鍵的樣式等。

但是,您還需要儲存使用者資訊和照片的功能。你要將它們儲存在伺服器上,而不僅僅儲存在使用者的裝置上,以便每個使用者的關註者都可以檢視其照片。

這時需要用到後端程式碼/伺服器端程式碼。你需要編寫後端程式碼來執行以下操作:

  • 記錄關註情況

  • 壓縮照片,從而不佔用太多儲存空間

  • 在發現功能中向每個使用者推薦照片和新帳戶

這是後端程式碼和前端程式碼之間的區別。

順便說一下,Python不是編寫後端程式碼的唯一選擇,還有基於JavaScript的Node.js等選擇。

原文連結:

https://medium.freecodecamp.org/what-can-you-do-with-python-the-3-main-applications-518db9a68a78

更多精彩


在公眾號後臺對話方塊輸入以下關鍵詞

檢視更多優質內容!

PPT | 讀書 | 乾貨 高考 | 世界盃

Python | 機器學習 | 區塊鏈 | 揭秘 | 福利

推薦閱讀

Q: 你都在用Python做什麼

歡迎留言與大家分享

覺得不錯,請把這篇文章分享給你的朋友

轉載 / 投稿請聯絡:baiyu@hzbook.com

更多精彩,請在後臺點選“歷史文章”檢視

贊(0)

分享創造快樂