
Python能用來做什么?以下是Python的三大主要用途
如果你想學(xué)Python,或者你剛開始學(xué)習(xí)Python,那么你可能會問:“我能用Python做什么?”
這個問題不好回答,因為Python有很多用途。
但是隨著時間,我發(fā)現(xiàn)有Python主要有以下三大主要應(yīng)用:
· Web開發(fā)
· 數(shù)據(jù)科學(xué)
包括機(jī)器學(xué)習(xí)、數(shù)據(jù)分析和數(shù)據(jù)可視化
· 腳本
讓我們來依次介紹。
一、Web開發(fā)
Django和Flask等基于Python的Web框架最近在Web開發(fā)中非常流行。
這些Web框架可以幫助你用Python編寫服務(wù)器端代碼(后端代碼)。這是在你的額服務(wù)器上運行的代碼,而不是運行在用戶設(shè)備和瀏覽器的代碼(前端代碼)。
為什么需要Web框架
因為用Web框架可以更容易地構(gòu)建通用后端邏輯。這包括將不同的URL映射到Python代碼塊,處理數(shù)據(jù)庫以及生成用戶在瀏覽器中看到的HTML文件。
應(yīng)該使用哪種Python Web框架
Django和Flask是最流行的兩種Python Web框架。如果你剛剛?cè)腴T,我建議使用其中一種。
Django和Flask有什么區(qū)別
Gareth Dwyer 關(guān)于這個問題有一篇出色的文章,在這里我引用幾段:
主要區(qū)別
Flask:能夠?qū)崿F(xiàn)簡單、靈活和細(xì)致的控制。并能讓你自己決定實現(xiàn)方式。
Django:提供了全面的體驗:你可以獲得管理面板、數(shù)據(jù)庫接口、ORM(對象關(guān)系映射)以及開箱即用的應(yīng)用程序和項目的目錄結(jié)構(gòu)。
如何選擇
Flask:如果你關(guān)注的是經(jīng)驗和學(xué)習(xí)的機(jī)會,或者你想更多地控制使用哪些組件,比如你想使用哪些數(shù)據(jù)庫以及如何與其進(jìn)行交互。
Django:如果你關(guān)注最終產(chǎn)品,或者你正在研究一個簡單的應(yīng)用,比如新聞網(wǎng)站、網(wǎng)店或博客,并且你希望有單一實現(xiàn)的方式。
換句話說,如果你是初學(xué)者,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ù)科學(xué)
數(shù)據(jù)科學(xué),這里包括機(jī)器學(xué)習(xí),數(shù)據(jù)分析和數(shù)據(jù)可視化。
假設(shè)你想開發(fā)一個能夠自動檢測圖片內(nèi)容的程序。給出圖1,你希望程序識別這是一只狗。
圖1
給出圖2,希望程序能識別這是一張桌子。
圖2
你可能會說,我可以寫一些代碼來做到這點。例如,如果圖片中有很多淺棕色像素,那么可以識別是狗。
或者可以檢測圖片中的邊緣,如果有很多直的邊緣,那么就是桌子。
但這種方法很快就不好用了。如果圖片中的狗不是棕色毛的怎么辦?如果圖片只顯示桌子的圓形部分怎么辦?
這里就需要用到機(jī)器學(xué)習(xí)了。
機(jī)器學(xué)習(xí)通過實現(xiàn)算法,該算法能夠自動檢測輸入中的模式。
例如,你將1000張狗的圖片和1000張桌子的圖片輸入給機(jī)器學(xué)習(xí)算法,讓它掌握狗和桌子間的區(qū)別。那么當(dāng)你給出新的圖片讓它識別是狗還是桌子時,它就能夠進(jìn)行判斷。
這有點類似孩子學(xué)習(xí)新事物的方式。孩子是如何學(xué)習(xí)認(rèn)知狗或桌子的呢?就是通過大量的例子。
你不會明確告訴孩子:“如果某個毛茸茸的東西有淺棕色的毛發(fā),那么就可能是狗。”
你會說,“這是狗,這也是狗。而這是桌子,那個也是桌子?!?
機(jī)器學(xué)習(xí)算法的方式大致相同。
我們可以將相同的想法應(yīng)用于:
(比如YouTube,亞馬遜和Netflix)
· 人臉識別
· 語音識別
以及其他應(yīng)用。
你聽過的熱門機(jī)器學(xué)習(xí)算法包括:
· 隨機(jī)森林
你可以使用上述任何算法來解決前面提到的圖片標(biāo)簽問題。
將Python用于機(jī)器學(xué)習(xí)
有一些熱門的機(jī)器學(xué)習(xí)庫和Python框架。其中兩個最熱門的是scikit-learn和TensorFlow。
· scikit-learn帶有一些內(nèi)置的熱門機(jī)器學(xué)習(xí)算法。
· TensorFlow是一個低級庫,能讓你創(chuàng)建自定義機(jī)器學(xué)習(xí)算法。
如果你剛開始進(jìn)行機(jī)器學(xué)習(xí)項目,我會建議你先從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ù)分析工作與這個例子非常相似,只是更復(fù)雜一些。在谷歌時我使用Python進(jìn)行分析,而我在微軟使用JavaScript。
在這兩家公司我都使用SQL從數(shù)據(jù)庫中提取數(shù)據(jù)。然后,我用Python和Matplotlib(在谷歌)或JavaScript和D3.js(在微軟)來可視化和分析這些數(shù)據(jù)。
使用Python進(jìn)行數(shù)據(jù)分析/可視化
進(jìn)行數(shù)據(jù)可視化時,Matplotlib是非常熱門的庫。
Matplotlib很棒,因為:
· 容易上手
· seaborn等庫是基于它的,學(xué)習(xí)Matplotlib可以幫助你以后學(xué)習(xí)其他庫。
如何用Python學(xué)習(xí)數(shù)據(jù)分析/可視化
你首先應(yīng)該了解數(shù)據(jù)分析和可視化的基礎(chǔ)知識。在學(xué)習(xí)了數(shù)據(jù)分析和可視化的基礎(chǔ)知識之后,學(xué)習(xí)統(tǒng)計學(xué)基礎(chǔ)知識也將會很有幫助。
三、腳本
什么是腳本?
腳本通常是指編寫能夠自動執(zhí)行簡單任務(wù)的小程序。
我曾經(jīng)在日本的一家小型創(chuàng)業(yè)公司工作,公司有郵件支持系統(tǒng),這用來回復(fù)客戶通過郵件發(fā)送給我們的問題。
在那兒工作時,我的任務(wù)是計算包含關(guān)鍵字的郵件數(shù)量,以便分析我們收到的電子郵件。這可以手動完成,但我寫了一個簡單的腳本來自動執(zhí)行此任務(wù)。
當(dāng)時我們使用了Ruby,但對于這類任務(wù)Python也是不錯的選擇。Python適合這類任務(wù),因為它語法簡單,易于編寫,而且進(jìn)行測試也很快。
其他用途
嵌入式應(yīng)用
我不是這方面的專家,但我知道Python可以與Rasberry Pi一起用,在硬件愛好者中很流行。
游戲開發(fā)
你可以用PyGame來開發(fā)游戲,但這并不是最受歡迎的游戲引擎。你可以用它來開發(fā)業(yè)余愛好項目,但如果你對游戲開發(fā)很認(rèn)真,建議不要選它。
我建議使用Unity的C#,這是最受歡迎的游戲引擎之一。它能讓你為許多平臺開發(fā)游戲,包括Mac、Windows、iOS和Android。
桌面應(yīng)用
你可以用Python的Tkinter,但這并不是最熱門的選擇。Java,C#和C ++等語言似乎更受歡迎。
最近,一些公司也開始使用JavaScript來開發(fā)桌面應(yīng)用程序。例如,Slack的桌面應(yīng)用是Electron構(gòu)建的。它能讓你用JavaScript構(gòu)建桌面應(yīng)用程序。
就個人而言,如果我要開發(fā)桌面應(yīng)用,我會選擇使用JavaScript。它能讓你重新使用網(wǎng)絡(luò)版本的一些代碼。
當(dāng)然,我并不是桌面應(yīng)用的專家,所以如果你有不同的看法,評論中告訴我。
Python 3還是Python 2
我會推薦Python 3,因為它更新而且更受歡迎。
后端代碼與前端代碼的區(qū)別
假設(shè)你想開發(fā)類似Instagram的產(chǎn)品,那么你需要為想要支持類型的設(shè)備創(chuàng)建前端代碼。
你可能會用到:
· 面向iOS端的Swift
· 面向Android的Java
· 面向Web瀏覽器的JavaScript
每組代碼將在每種類型的設(shè)備上運行。這類代碼將決定應(yīng)用的布局樣式,點擊按鍵的樣式等。
但,您還需要存儲用戶信息和照片的功能。你要將它們存儲在服務(wù)器上,而不僅僅存儲在用戶的設(shè)備上,以便每個用戶的關(guān)注者都可以查看其照片。
這時需要用到后端代碼/服務(wù)器端代碼。你需要編寫后端代碼來執(zhí)行以下操作:
· 記錄關(guān)注情況
· 壓縮照片,從而不占用太多存儲空間
· 在發(fā)現(xiàn)功能中向每個用戶推薦照片和新帳戶
這是后端代碼和前端代碼之間的區(qū)別。
順便說一下,Python不是編寫后端代碼的唯一選擇,還有基于JavaScript的Node.js等選擇。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03