標籤:int .com 機器學習演算法 處理 比較 流行的遊戲 資料視覺效果 個人經曆 圓形
原文連結
一、陳述1,我到底能用Python做什嗎?
我觀察注意到Python三個主要流行的應用:
- 網站開發;
- 資料科學——包括機器學習,資料分析和資料視覺效果;
- 做指令碼語言。
二、網站開發
網站架構將協助你建立基於Python的伺服器端代碼(後端代碼),這些代碼將在你的伺服器上運行,與使用者的裝置和瀏覽器截然相反(前端代碼)。像Django和Flask這樣基於Python網站架構最近在網頁開發中變得流行起來。
1,為什麼我需要一個網站架構?
因為網站架構將會更容易的建立後端的共同邏輯。這包括將不同的URL映射到Python的代碼塊,處理資料庫,以及產生使用者在瀏覽器上看到的HTML檔案。
2,我應該使用哪一個Python網站架構?
Django和Flask這兩個架構在使用Python做網站開發最受歡迎,如果你是剛開始學習,我推薦使用其中的一種。
3,Django與Flask兩者之間有什麼不同?
Gareth Dwyer寫了一篇關於這個話題的優秀文章,我在這裡引用一下:
主要的區別:
- Flask提供簡易、靈活和細緻紋理控制,這是不武斷的(它可以讓你決定如何?事情)。
- Dijango提供詳盡的體驗:你將得到一個管理面板、資料庫介面、ORM(對象關係映射)和應用程式和項目的目錄結構。
你也許應該選擇:
- Flask,如果你專註於經驗和和學習機會,或者如果你想更多的管理組件的使用(例如,你希望使用什麼資料庫以及如何與它們互動)。
- Django,如果你專註於最終的產品,特別是如果你正在開發一個簡單的應用程式,比如新聞網站、電子商店或者部落格,你想要的總是一個簡單的、明顯的做事方法。
換句話說,如果你是一個初學者,Flask也許是個比較好的選擇因為它需要處理的組件更少。此外,如果您想要更多的定製,Flask是一個更好的選擇。
另外,根據我的資料工程師朋友Jonathan T Ho的說法,Flask比Django更適合建立稱為REST API的東西。
另一方面,如果你想直接構建一些東西,Django可能會讓你更快地實現它。
三、資料科學1,首先,讓我們來複習一下什麼是機器學習
我認為解釋什麼是機器學習的最好方法是給你一個簡單的例子。
假設你想開發一個程式來自動檢測圖片中的內容。
因此,根據下面的圖片(圖1),你想讓你的程式識別它是一隻狗。
圖1
再看下面的另一個(圖2),你希望你的程式識別它是一個表。
圖2
你可能會說,我可以寫一些代碼。例如,如果圖片中有很多淺棕色的像素,那麼我們可以說它是一隻狗。
或者,你可以找出如何檢測映像中的邊緣。然後,你可能會說,如果有很多直邊,那麼它就是一個表格。
然而,這種方法很快就變得棘手起來。如果照片裡有只白色的狗,沒有棕色的頭髮呢?如果圖片只顯示了桌子的圓形部分呢?
這就是機器學習的用武之地。
機器學習通常實現一種演算法,該演算法自動檢測給定輸入中的模式。
你可以給機器學習演算法1000張狗的圖片和1000張桌子的圖片。然後,它將學會狗和桌子的區別。當你給它一張狗或桌子的新圖片時,它就能識別出是哪一個。
我覺得這有點像嬰兒學新東西。一個嬰兒怎麼知道一件東西看起來像狗,另一件看起來像桌子?可能來自於一些例子。
你可能不會明確地告訴一個嬰兒,“如果一個東西是毛茸茸的,有淺棕色的頭髮,那麼它很可能是一隻狗。”
你可能會說,“那是一隻狗。”這也是一隻狗。這是一張桌子。那一張也是一張桌子。”
機器學習演算法的工作原理大致相同。
你可以把同樣的想法應用到:
- 推薦系統(想想YouTube、亞馬遜和Netflix);
- Face Service;
- 語音辨識。
在其他應用程式中,你可能聽說過的流行的機器學習演算法包括:
你可以使用上述任何一種演算法來解決我前面解釋過的映像標記問題。
2,使用Python進行機器學習
有一些流行的機器學習庫和用於Python的架構
其中最流行的兩種是scikit-learn和TensorFlow。
- scikit-learn附帶了一些更流行的機器學習演算法。我上面提到過一些。
- TensorFlow是一個低級庫,允許你構建自訂機器學習演算法。
如果你剛剛開始一個機器學習項目,我建議您首先從scikit-learn開始。如果您開始遇到效率問題,那麼我將開始研究TensorFlow。
3,我該如何學習機器學習
要學習機器學習的基礎知識,我推薦斯坦福或加州理工學院的機器學習課程。
請注意,你需要微積分和線性代數的基礎知識來理解這些課程中的一些材料。
然後,我會和Kaggle一起練習你從這些課程中學到的東西。它是一個網站,人們在那裡競爭,為一個給定的問題建立最好的機器學習演算法。他們對初學者也有很好的教程。
4,使用Python進行資料分析和資料視覺效果
最流行的資料視覺效果庫之一是Matplotlib。
這是一個很好的開始,因為:
- 這很容易開始
- 其他一些庫,例如seaborn,則基於此。因此,學習Matplotlib將協助您稍後學習其他庫。
5,我應該如何學習使用Python進行資料分析和資料視覺效果?
您應該首先學習資料分析和可視化的基礎知識。
在學習了資料分析和可視化的基礎之後,從Coursera和Khan Academy等網站學習統計基礎知識也會有所協助。
四、指令碼語言1,什麼是指令碼語言?
指令碼化通常指編寫小程式,這些程式被設計成自動化簡單的任務。
我舉個我個人經曆的例子。
我曾在日本的一家小公司工作,那裡有電子郵件支援系統。這是一個系統,我們可以回答客戶通過電子郵件發給我們的問題。
當我在那裡工作時,我的工作是計算包含特定關鍵詞的郵件數量,這樣我們就可以分析我們收到的郵件。
我們本來可以手動完成,但是我編寫了一個簡單的程式/簡單的指令碼來自動完成這個任務。
實際上,那時我們使用Ruby來完成這個任務,但是Python也是一種很好的語言來完成這類任務。Python之所以適合這種類型的任務,主要是因為它的文法相對簡單,而且易於編寫。它還可以快速地用它寫一些小的東西並進行測試。
2,什麼是嵌入式應用程式?
我不是嵌入式應用程式的專家,但我知道Python與Rasberry Pi(樹莓派)一起工作。在硬體愛好者中,它似乎是一個流行的應用程式。
3,和遊戲有什麼相關?
你可以使用名為PyGame的庫來開發遊戲,但它並不是最流行的遊戲引擎。你可以用它來建立一個愛好項目,但如果你是認真的遊戲開發,我個人不會選擇用它來開發。
相反,我建議你從與Unity中的C#開始,C#是最流行的遊戲引擎之一。它允許你為許多平台構建一個遊戲,包括Mac、Windows、iOS和Android。
4,和嵌入式程式有什麼相關?
您可以使用Tkinter用Python製作一個,但它似乎也不是最流行的選擇。
相反,像Java、C#和C++這樣的語言似乎更受歡迎。
最近,一些公司也開始使用JavaScript建立傳統型應用程式。
例如,Slack的傳統型應用程式是用一種叫做電子的東西構建的。它允許你使用JavaScript構建傳統型應用程式。
就我個人而言,如果我正在構建一個傳統型應用程式,我會選擇一個JavaScript選項。它允許你重用web版本中的一些代碼。
然而,我也不是案頭應用的專家,所以如果你不同意或者同意我的觀點,請在評論中告訴我。
5,使用Python3或Python2?
我推薦Python3,因為它更現代,並且在這一點上它更受歡迎。
五,評論與小結
受左耳朵耗子前輩影響,從這周開始堅持每周完成一個ARTS,所以這周就先從這篇技術文章開始。
這篇文章主要從Python最常用的三個應用領域入手,介紹了什麼是網站開發,開發架構的選擇;什麼是機器學習,機器學習庫的選擇,推薦的機器學習課程,還有資料視覺效果的學習流程;指令碼語言在遊戲、嵌入式程式中的應用;最後是Python版本庫的選擇。
本文適合入門Python的新手、正在糾結使用Python選擇應用方向和庫的選擇的人,還有不知從何開始學習網站開發、機器學習和指令碼語言編寫的小夥伴。
(第一次嘗試翻譯和整理國外技術文章,如有不足之處可以提出來,希望自己的翻譯技能每天都能進步一點點點點)
What exactly can you do with Python? Here are Python’s 3 main applications._你能用Python做什麼?下面是Python的3個主要應用程式。