在決定踏入資料科學的領域後,便開始搜尋學習程式語言的資源。但程式語言這麼多,哪些才是資料科學最需要用的呢?kaggle在2022年針對平台的資料科學家調查,他們使用程式語言的前三名為Python、SQL、R,而且近年來的調查結果都是如此。
先前把SQL學到一個段落,接下來準備學習Python吧!一開始除了在kaggle,我也同步在Hahow上課,循著學習SQL的經驗,從建立基礎概念開始,並努力靠自己的力量完成每道練習題。
在分享學習心得之前,我想先說個結論:Python的等級比SQL高很多啊!Python練習題卡關時,挫折感比SQL還嚴重,但也因為如此,靠自己成功解開後,成就感提升非常多。
不過,相比更古早的C語言,Python這種物件導向、直譯式的程式語言,已經是相對適合新手學習的,而且受到那麼多工程師的青睞,必定有它好用的地方,未來還得繼續熟悉它才行呢💪🏻
在寫Python時,除了要注意符號、縮排、與保留字有別的取名,還要注意大小寫。例如,想表達一般物件中的位置,只能用「index」,不能用「Index」(這是在Pandas模組中特有的),而邏輯運算結果的「True」,寫成「true」就無法辨識。
更令新手混淆的是,同義的文字跟符號之間,也不能隨意互換。像是「and」跟「&」在不同的物件種類下,運算結果是不同的,「or」跟「|」也是同樣的情形。詳細的差異說明,可以Google一下,也許你能體會初學者「蛤?」的心情😅
還有一個令我印象深刻的是,各種括號的意義。以數學的術語來說,圓的「( )」稱作小括號,方的「[ ]」稱作中括號,扭動的「{ }」稱作大括號。在我學SQL時,只會用到小括號,而在Python時,三個全上了!各自的用途不同,同個括號在不同情境中的意思也不同。說這是新手學Python要克服的第一個門檻,應該不算誇張。
唸數學系最常被訓練的技能,就是「證明」——如何用既有的定義、假設、已知的性質,以合乎邏輯的過程,推導出更多的性質、定理。
沒有想到學Python時,也跟寫數學證明有些雷同之處。例如運算中需要的物件,必須要自行假設,才可以在後面的程式碼中使用,就像假設x、y為某個數學物件一樣。Python內建的函數,則像是已知的性質或定理,可以直接宣告出來使用。
可惜,總會遇到不敷使用的時候,這時有兩個方法。一個是找合適的第三方套件,從中選擇函數來使用。第三方套件就像是有一群人幫忙證明出許多好用的性質,你可以直接拿來用,幫你做到更多的事。
另一個方法是,靠自己定義新的函數。就像數學證明中,想要得出一個結論,但有些前提條件不足,或是可用的已知性質不足,就得把推論的路徑分段,每一段都推導出一個新的性質,綜合這些性質來推得最終目的。成功創造出可用的函數,跟自己推導出新理論的爽感,想必是等價的😆
「寫證明時,應該要確定每一步是正確的,才能繼續寫下去。」這是我在唸數學系時最有感的一句話。不過現實是,通常我們以為是正確的,其實是錯誤的;寫Python也會遇到相同的情形,你以為這樣寫可以得到預期輸出,但最後風馬牛不相及。好在,現在有些資源可以幫助你檢視Python的每個步驟,不用擔心自己檢查是否有疏漏。在此推薦PythonTutor這個好網站給所有的新手,雖然它不會告訴你怎麼修正,但至少幫助檢視你寫的是不是你想的,方便找出可能需要改的地方。
學完基礎的內容後,未來打算多熟練所學的技巧與方法,找更多的練習、應用情境來做,希望熟能生巧,逐步累積成果,讓我具備足以處理數據分析任務的能力,成功踏入資料科學的領域中!