開始Python的新手教程
本文是《如何七周成為數據分析師》的第十八篇教程,如果想要了解寫作初衷,可以先行閱讀七周指南。溫馨提示:如果您已經熟悉Python,大可不必再看這篇文章,或只挑選部分。
Python是近年來最火爆的語言,已經作為數據分析和機器學習的首選語言之一。
Python雖然被詬病不夠快,但足夠靈活和易上手。Python教程主要圍繞數據分析展開,所以技術原理這類內容會略過,可以認為這是一篇重應用的課程。
想學會一門語言不是一朝一夕的事情,若大家想成為技術型的數據分析師,或者未來往數據挖掘發展,建議你要比文章內容學得更深。所有的代碼最好都手打一遍,這是最有效的學習方式。
數據分析環境
Python的編寫環境,用Anaconda足矣。Anaconda是專業的數據科學計算環境,已經集成絕大部分包和工具,不需要多餘的安裝和調試。
Python版本建議3.0以上,現在最新版本是3.6,不要選擇2.7的版本,否則你會被無盡的中文編碼問題困擾。
Anaconda在官網http://continuum.io/downloads 下載,選擇最新版本,約400MB。
完成安裝後,Win版本會多出幾個程序,Mac版本只有一個Navigator導航。數據分析最常用的程序叫Jupyter,以前被稱為IPython Notebook,是一個互動式的筆記本,能快速創建程序,支持實時代碼、可視化和Markdown語言。
點擊Jupyter進入,它會自動創建一個本地環境localhost。
點擊界面右上角的new,創建一個python文件。
開始你的Python
界面上部是工具欄,編輯撤回運行等,下面是快捷操作,大家以後會熟悉的。頁面正中便是腳本執行的地方,我們輸入自己第一行代碼吧:
(我就不用hello world)灰色框是輸入程序的地方,回車是換行,shift+回車執行灰色區域的代碼,它的結果會直接在下面空白處出現。這就是Jupyter互動式的強大地方,將Python腳本分成片段式運行,尤其適合數據分析的摸索調整工作。
這裡的print叫函數,和excel的函數同理,是程序執行的主體,負責將輸入轉化成輸出(函數留在下一篇細講)。這裡將hello qinlu這段文字輸出。新手可能會奇怪為什麼要加引號,這種用引號括起來的文字在程序中叫字元串。
Python是一門計算機語言,它的邏輯和自然語言不一樣,編程語言的目的是執行任務,所以它不能有歧義。為了規避各種歧義,人們創造了語法規則,只有正確的語法,才能被轉換成CPU執行的機器碼。
先了解Python語法中的數據類型。計算機最開始只被用於數值運算,後來被賦予了各種豐富的數據類型。
上面兩個是小學生都會的四則運算,在計算機語言中可沒有那麼簡單。它涉及了兩個數值類型,整數int和浮點數float。整數和浮點數在計算機內部存儲的方式是不同的,我們不用知道具體原理,明確一點,整數運算是永遠精確的,浮點運算則可能有誤差。
兩種數據類型也可以互換,通過int函數和float函數。
有了數值,必然有文本,程序中叫字元串,用英文引號括起來表示。單引號和雙引號沒有區別,所以"qinlu"和"qinlu"是等價的,引號是邊界,輸出的時候不會包含它。當字元串內本身包含引號時,也不影響使用。
需要注意的是,不論單引號還是雙引號,一旦混用很容易出現錯誤。因為程序並不知道它是字元串的邊界還是符號。
解決方法有兩種,一種是使用三引號,三引號代表整體引用,而且包含換行。第二種是引號前面加,它是轉義字元,表示這個引號就是單純的字元。
三引號也可以用來注釋,通常是大段的文字解釋,如果一句話,我們更習慣用#,#後面的內容均不會作為程序執行。
時間是特殊的數值類型,它將結合datetime模塊講解。
還有兩個常見的數據類型,布爾值和空值。布爾值是邏輯判斷值,只有True和False。
布爾值在IF語句和數據清洗中經常使用,利用其過濾。布爾值能和布爾值運算,不過這裡是and、not、or作為運算符,Ttue and True = True,False and True = False,False and False = False,not True = False,True or False = True等。
空值是一個特殊的值,表示為None,None不等於0,0具有數學意義而None沒有,None更多表示該值缺失。
整數,浮點數,字元串,布爾值,空值就是Python常見的數據類型。Python3對中文的支持比較友好,所以大家可以用中文作為字元串試一下print。
數據類型構成了變數的基礎,變數可以是任意的數據類型。想要用變數,必須先賦予變數一個值,這個過程叫賦值。
我首先給a賦予了一個整數值1,然後改變它為字元串abc,變數在Python中沒有固定的數值類型,這是Python最大的優點,所以它在數據分析中很靈活。這也是它被稱為動態語言的原因,相對應的叫靜態語言。
Python是大小寫敏感的語言,所以a和A是有區別的,這點請牢記。另外變數名儘可能使用英文,不要拼音,英文的可讀性是優於拼音的。
變數有兩種拼寫風格,一種叫駝峰,一種叫下劃線,以用戶ID為例。駝峰命名法為userId,以一串英文詞語user和id組成變數,第一個詞語的首字母小寫,第二個詞語開始的首字母均大寫。下劃線命名法為user_id,全部小寫,用_分割單詞。
一個變數的值可以被賦予另外一個變數,如果b變數之前有另外一個值,那麼會被1覆蓋。呈從上而下的執行關係。初看a = a + 1好像有邏輯問題,其實這涉及到了程序執行的先後順序,程序是先計算a+1的值得到2,然後將其賦予(覆蓋)了a。等號右邊的計算先於左邊,這是從右到左的邏輯關係。
有變數,自然有常量,常量是固定不變的量,可是在Python中沒有真正意義的常量,一切皆可變,它更多是習慣上的叫法,即一旦賦值,就不再改變了。
Python的基礎數學運算符號有+,-,*,/,//,%。前面四個就是加減乘除,其中除法的結果一定是浮點數。後面兩個符號是除法的特殊形式,//代表除法中取整數,%代表除法中取餘數。
到這裡,新手部分已經講解完成。因為考慮到大家的基礎不一致,故早期內容並不難,後續學習難度才會逐漸遞增。下一章講解數據結構。——————
歡迎關注我的微信公眾號:tracykanc
推薦閱讀:
※用Python預測NBA常規賽結果
※利用XGboost簡單粗暴zillow競賽25%
※《R語言實戰》第7章 筆記
※胡說八道互聯網,他讓馬雲又愛又恨