剪刀石頭布的數據分析闖關之路——仗劍走天涯之鑄劍練劍篇
——Python是我行走江湖的武器
1 初識Python
1.1 Python在江湖——學習Python的意義
每一種語言偉大的背後都是有一定的時代背景。
在PC時代大量的嵌入式的設備,底層的代碼,以及桌面的應用都是用C,C++實現的,毋庸置疑他們是最接近底層,也是最快的。
隨著2000年左右電商的大規模的興起,逐漸的從PC時代過度到了互聯網時代,java開始王者歸來,加上2010移動互聯網的爆發android開始風靡起來,java更是如日中天.
那麼未來10年到底哪種語言會獨領風騷,笑傲江湖,我不得而知,但是未來10年一定是人工智慧,萬物互聯的時代,現在AI、VR、無人駕駛汽車、無人機、智能家居離我們越來越近了。
未來10年將是大數據,人工智慧爆發的時代,到時將會有大量的數據需要處理,而python最大的優勢,就是對數據的處理,有著得天獨厚的優勢,我相信未來的10年,python會越來越火。
以上摘自CSDN博客《你為什麼一定要學Python?》
1.2 揭開Python面紗——編程環境與架構
Anaconda 和 Jupyter notebook已成為數據分析的標準環境。選擇使用Python3.6作為基礎環境,使用Jupyter notebook作為編程IDE。
- Anaconda 是在Conda(一個包管理器和環境管理器)上發展出來的,對Conda的理解如圖所示(來自於慕課網)。
- Jupyter的由來以及發展,如圖所示(來自於慕課網)。
- 編程環境實現原理(Notebook與kernel之間交互關係)如圖所示(來自於慕課網)。
1.2.1 Anaconda
Anaconda是包管理器和環境管理器。
你可能已經安裝了 Python,那麼為什麼還需要 Anaconda?
1)Anaconda 附帶了一大批常用數據科學包
- 它附帶了 conda、Python 和 150 多個科學包及其依賴項。
- 因此你可以立即開始處理數據。
2)管理包
- 在數據分析中,你會用到很多第三方的包,而conda(包管理器)可以很好的幫助你在計算機上安裝和管理這些包,包括安裝、卸載和更新包。
3)管理環境
- 為什麼需要管理環境呢?
- 比如你在A項目中用了 Python 2,而新的項目B老大要求使用Python 3,而同時安裝兩個Python版本可能會造成許多混亂和錯誤。這時候 conda就可以幫助你為不同的項目建立不同的運行環境。
- 還有很多項目使用的包版本不同,比如不同的pandas版本,不可能同時安裝兩個 Numpy 版本,你要做的應該是,為每個 Numpy 版本創建一個環境,然後項目的對應環境中工作。這時候conda就可以幫你做到。
1.2.2 Jupyter notebook
Jupyter notebook 是一個Web應用,可以將數據分析的代碼、說明文本、可視化內容全部組合到一個web文檔中(類似於解題時的草稿紙,便於將來形成數據分析報告)。
- Jupyter Notebook 已迅速成為數據分析,機器學習的必備工具。因為它可以讓數據分析師集中精力向用戶解釋整個分析過程。
- Jupyter這個名字是它要服務的三種語言的縮寫:Julia,PYThon和R,這個名字與「木星(jupiter)」諧音。
1.3 鑄劍Python——安裝運行與測試
- Anaconda如何安裝、如何管理包、如何管理環境,見知乎《初學python者自學anaconda的正確姿勢是什麼??》
- Jupyter notebook如何安裝、啟動以及新手如何快速使用,見知乎《jupyter notebook 可以做哪些事情?》
- Python環境測試以及基本語法教程,見《菜鳥python3教程和python教程》
2. 快速學習基本招式
2.1 數據
2.1.1 數字(Number)
數字類型包括int(整數),float(浮點數),bool(布爾值),complex(複數)。
- 複數寫法應該是:x+yj
- 布爾類型寫法:首字母大寫(True,False)
2.1.2 字元串(String)
字元串一般用單引號或者雙引號括起來
2.1.3 容器
將不同的數據類型放在一起稱為容器。主要有列表、元祖、集合、字典四種,其區別如表所示:(參考知乎《數據分析之python基礎篇》)
列表元祖集合字典語法[]()set(){}序列有序有序無序無序修改可修改不可修改可修改可修改元素可重複可重複不可重複不可重複
- 列表(List)
定義列表及其基本操作(增加、修改、查詢、刪除):
- 元祖(Tuple)
定義元祖及其基本操作(查詢):
- 集合(Sets)
定義集合及其基本操作(增加、查詢、刪除):
- 字典(Dictionary)
2.1.4 布爾型
True和False,注意首字母大寫。
2.1.5 None
空值。
2.2 函數
- 自定義函數與語句塊結構
- 參數傳遞
- 變數作用域
(1)參數數據類型
(2)全局變數與局部變數
- 全局變數是在整個py文件中聲明,全局範圍內都可以訪問;
- 局部變數是在某個函數中聲明的,只能在該函數中調用它,如果試圖在超出範圍的地方調用,程序就出錯。
2.3 條件、循環
- 條件
(1)邊界條件:值比較、邏輯比較
(2)多個判斷條件
- 循環
(1)for循環的使用
(2)continue與break的使用:
2.4 模塊與包
(1)模塊(Module)就是包含代碼的文件,有四種代碼類型的模塊:
- 使用Python寫的程序( .py文件)
- C或C++擴展(已編譯為共享庫或DLL文件)
- 包(包含多個模塊)
- 內建模塊(使用C編寫並已鏈接到Python解釋器內)
使用模塊可以提高代碼的可維護性和重複使用,還可以避免函數名和變數名衝突。相同名字的函數和變數完全可以分別存在不同的模塊中,所以編寫自己的模塊時,不必考慮名字會與其他模塊衝突,但要注意盡量不要與內置函數名字衝突。
(2)包(Package)就是包含模塊文件的目錄,目錄名稱就是包名稱,目錄中可以包含目錄,子目錄也是包,但包名稱應該包含上一級目錄的名稱。Python引入了按目錄來組織模塊是為了避免模塊名衝突,不同包中的模塊名可以相同。
推薦閱讀:
※R語言練習:各城市間的房價有關係嗎?
※學習數據分析--念念不忘,終有迴響
※這樣做,你也會數據分析
※《BI程序猿——2017年總結》
※橘子:我為什麼要學數據分析?|數據分析