在本文中,我們將介紹如何有效地學習 Python 。你應該知道「數據科學」是用於解決、探究問題並從數據中提取有價值信息的科學。
為了有效地做到這一點,你需要整理數據集、訓練機器學習模型、可視化結果等等。
這是學習 Python 的最佳時機。
事實上,從就業需求增長的角度而言,福布斯將其列為十大技術技能。今天讓我們來討論一下這是為什麼……
為什麼要學習 Python?
Python 是世界上使用最廣泛的語言之一,它擁有一個熱情的用戶社區:
Python 流行度,TIOBE 指數
它在數據科學專業中擁有更忠實的追隨者。
有些人通過「你好,世界!」的簡單程序來判斷程式語言的質量。按照這個標準,Python 可以做得很好:
為了比較,下面是 Java 中的相同輸出:
好吧,說真的,簡單是 Python 的最大優勢之一。由於其精確高效的語法,Python 可以用比其他語言更少的代碼完成相同的任務。這使得實施解決方案的速度令人耳目一新。
此外,Python 充滿活力的數據科學社區意味著您將能夠找到大量的教程、代碼片段和修復常見錯誤。Stackoverflow將成為您最好的朋友之一。
最後,Python 擁有用於數據分析和機器學習的 全明星庫(也稱為包)陣容,這大大減少了產生結果所需的時間。稍後會詳細介紹這些。
如何有效地學習 Python ?
在我們討論你需要學習的內容之前,讓我們討論一下你不需要的內容。
你不需要 CS 學位。
大多數數據科學家永遠不會處理諸如內存泄漏、密碼學或「Big O」符號之類的主題。只要您可以使用 Python 或 R 等腳本語言編寫乾淨、符合邏輯的代碼,就可以了。
你不需要完整的 Python 課程。Python 和數據科學不是同義詞。
你不需要記住所有的語法。
相反,專注於掌握直覺,例如何時函數合適或條件語句如何工作。在谷歌搜索、閱讀文檔和良好的實踐之後,你將逐漸記住語法。
我們建議採用自上而下的方法。
我們提倡自上而下的方法,目標是首先獲得結果,然後隨著時間的推移鞏固概念。事實上,我們更願意放棄「課堂」學習,轉而進行現實世界的實踐。
1、你將從學習核心編程概念開始。
2、接下來,您將獲得基本數據科學庫的實用知識。
3、最後,您將通過實際項目練習和完善您的技能。
這種方法可以讓你獲得更多樂趣的同時迅速掌握。
第 1 步:核心編程概念
有效的編程不是要記住語法,而是掌握一種新的思維方式。
因此,花點時間為核心編程概念打下堅實的基礎。這些將幫助您將頭腦中的解決方案轉化為計算機的指令。
如果你是編程新手.......我們推薦優秀的 Automate the Boring Stuff with Python 一書,該書已在創作共用許可下免費在線發布。
這本書承諾「為初學者提供實用的編程」,並且讓每節課都腳踏實地。閱讀第 6 章 - 操作字符串並完成練習題。
如果你只需要複習 Python 語法,那麼我們推薦以下視頻:
https://youtu.be/N4mEzFDjqtA
同樣,這一步的目標不是學習有關 Python 和編程的所有知識。相反,專注於直覺。
你應該能夠回答以下問題:
• 整數、浮點數和字符串有什麼區別?
• 如何使用 Python 作為計算器?
• 什麼是 for 循環?我什麼時候寫一個?
• 函數的基本結構是什麼?
• 如何使用條件語句(if...else...)來添加邏輯?
• 導入語句如何工作?
如果你想練習更多核心編程概念,請查看以下資源。
• Code Fights 是一個平台,有許多簡短的編碼挑戰,可以在 5 分鐘內完成(儘管它非常有趣,你可能會發現自己一次玩幾個小時)。您將在此過程中獲得積分並解鎖新關卡,這也是跟蹤你的進度的好方法。
• Python Challenge 是網絡上最酷的謎題之一,所以不要被它 1990 年的圖形嚇到。你可以在 Python 腳本的幫助下完成所有 33 個級別。一位用戶稱它為「一種令人上癮的學習 Python 細節的方式……」我同意!
• PracticePython.org 是 Python 中簡短練習題的集合。它幾乎每周都會更新一個新問題。真正好的是作者為每個問題包含了多個用戶提交的解決方案,因此您可以看到解決它們的替代方法。
• How to Think Like a Computer Scientist 是一本很棒的交互式在線書籍,它通過關鍵的編程概念(使用 Python)進行了一次旋風之旅。如果您對編程完全陌生,這可能是一個不錯的選擇。這就像一個濃縮的「CS 101」課程。
第 2 步:基本數據科學庫
接下來,我們將專注於「如何為數據科學學習 Python」的數據科學部分。
正如我們之前提到的,Python 擁有一系列用於數據科學的全明星庫。庫只是預先存在的函數和對象的捆綁,您可以將它們導入腳本以節省時間。
這些是我們推薦的有效獲取新庫的操作步驟:
1、打開一個新的 Jupyter Notebook(見下文)。
2、閱讀圖書館的文檔 30 分鐘,了解其模塊的高級介紹。
3、將庫導入您的 Jupyter Notebook。
4、按照其分步快速入門教程查看庫的運行情況。
5、再花 30 分鐘查看它的文檔,以了解它還能做什麼。
我們不建議現在更深入地研究圖書館,因為當你進入項目時,你可能會忘記大部分你學到的東西。相反,旨在發現每個圖書館的能力。
如果你按照我們上面的建議通過 Anaconda 捆綁包安裝了 Python,那麼Jupyter Notebook也會附帶它。Jupyter Notebook 是一個輕量級的 IDE,深受數據科學家的喜愛。我們為你的項目推薦它。你可以通過 Anaconda 附帶的 Anaconda Navigator 打開一個新筆記本。查看此短視頻以獲取說明。
這些是你需要的基本庫:
數字貨幣
NumPy 允許簡單高效的數值計算,許多其他數據科學庫都建立在它之上。
• 文檔
• 快速入門教程
熊貓
Pandas 是用於數據結構和探索性分析的高性能庫。它建立在 NumPy 之上。
• 文檔
• 快速入門教程
Matplotlib
Matplotlib 是一個靈活的繪圖和可視化庫。它功能強大但有些麻煩。您現在可以選擇跳過 Matplotlib 並使用 Seaborn 開始(請參閱下面的 Seaborn 建議)。
• 文檔
• 快速入門教程
Scikit-學習
Scikit-Learn 是 Python 中首屈一指的通用機器學習庫。它有許多流行的算法和模塊,用於預處理、交叉驗證等。
• 文檔
• 快速入門教程
獎金:Seaborn
Seaborn 使繪製常見數據可視化變得更加容易。它建立在 Matplotlib 之上,並提供了一個更令人愉快的高級包裝器。
• 文檔
• 快速入門教程
第 3 步:端到端項目
到目前為止,你將對編程有基本的了解,並對基本庫有一定的應用知識。這實際上涵蓋了你開始使用數據科學所需的大部分 Python。
此時,有些學生會感到有些不知所措。沒關係,這很正常。
如果你採用緩慢且傳統的自下而上的方法,你可能不會感到不知所措,但到達這裡需要 10 倍的時間。現在的關鍵是立即投入並開始將所有東西粘合在一起。同樣,我們到這裡的目標只是學到足夠的東西才能開始。
接下來,是時候通過大量的實踐和項目來鞏固你的知識了。你有幾個選擇:
Kaggle 比賽
第一種選擇是參加 Kaggle,這是一個舉辦數據科學競賽的網站。
Kaggle 的主要優勢是每個項目都是獨立的。你將獲得數據集、目標和教程以幫助您入門。
競賽的主要缺點是它們通常不能代表真實世界的數據科學。「入門」比賽太基礎了,而標準比賽(即有獎池的比賽)通常對初學者來說太難了。
如果你對這條路徑感興趣,請查看我們的 Kaggle 初學者指南。
DIY項目
另一種選擇是構建你自己的項目並選擇你感興趣的數據集。
這種方法的主要優點是項目更能代表現實世界的數據科學。你可能需要定義自己的目標、收集數據、清理數據集、設計功能等等。
DIY 項目的缺點是你需要已經熟悉適當的數據科學工作流程。沒有一個,你可能會錯過重要步驟或在不知道如何繼續的情況下陷入困境。如果你選擇這條路,請查看我們的文章,其中包含幾個 DIY 項目想法。