資料分析的環境不會搭?看這裡準沒錯!

2020-10-28 14:00:34

你好,我是悅創。

自學一門程式語言著實不易。從我自己的經歷看,你需要翻越好幾個障礙,從心態,到體力,再到思維,最終才能成為一名優秀的程式設計師。所以說掌握一門語言,需要你用心去感悟,去認真體會你和「她」的那一絲默契。

但是遺憾的是,太多的朋友們,並不是倒在了中途,而是他們並沒有開始,是的,他們連 Python 公主的纖纖玉手都沒有摸到。

Python 應該下載哪個版本?

Python 環境如何設定?

推薦幾款最好用的 Python IDE 等等。我們的挑戰在於選擇太多,在豐收的農場門口,我們望著滿眼的西瓜和葡萄,躊躇滿志卻不敢前進。

如果你現在還沒有設定好 Python 環境,那麼恭喜你,跟著本文走,你將能夠收穫基於 Python3.7 搭建的程式設計平臺,以及以 Jupyter 為主要工具的程式設計環境,本文還將帶你安裝常用的資料分析工具以及視覺化工具,一站式購齊,無後顧之憂。

如果你已經安裝了 Python3.7 的環境,或者 anaconda 環境,你也可以順著本文的思路往下走,工具不是重點,設定環境的能力才是。

但是如果你的 Python 環境來歷不明(不明論壇下載),我強烈建議你解除安裝後重新安裝官網版本( Python 的解除安裝方式同普通軟體,在控制面板中解除安裝即可)。畢竟 "磨刀不誤砍柴工」 ,有的版本殘缺不全,誰也無法預測你會出現什麼 bug。

本文以windows 10 X64系統為例,演示本地 Python 資料分析環境的搭建過程。

1. 安裝 Python 環境

1.1 Python 軟體下載

作為 21世紀的大好青年,從來都是要玩最正宗的,盜版?!那是上一代人玩剩下的。特別是在正版還免費的情況下。推薦去 Python 官網https://www.python.org/ 下載。部分朋友可能載入會比較慢,稍安勿躁,除非網路問題,網站都是能夠存取的。

圖片描述

進入官網後,你可以直接按照上圖的提示,選擇 Windows 標籤,進入 Windows 平臺的 Python 版本詳單頁面( Releases Page ),建議選擇 3.7或以上的版本。Python2.7 將在 2020年停止所有更新,就像曾經輝煌的 Windows XP 一樣,最終慢慢成為歷史的塵埃,所以本專欄不推薦安裝 Python2.7

在選擇 Python 版本要注意根據自己 PC 的版本一致,如果自己的版本是 64位元,建議選擇 x86-64 版本下載,否則直接選擇普通版本。切記電腦位數和 Python 版本保持一致,否則以後流的淚都是當初挖的坑啊。

圖片描述

對於使用 mac OS 的朋友,請選擇 mac OS X 標籤,進行下載,步驟基本一致。

1.2 Python 軟體安裝

Python 的安裝過程非常人性化,你只要雙擊安裝程式,設定好安裝路徑,「記得勾選:Add Python 3.7 to PATH」然後不斷點選下一步,直至完成安裝。

圖片描述

上圖 add python3.7 to Path ,是指安裝過程中程式預設把安裝路徑新增到系統環境變數中,此項務必打勾!

至此我們已經初步完成了 Python3.7 的安裝。在 cmd 命令列中輸入 python ,可以直接進入 python 環境中:

C:\Users\Administrator>python
Python 3.7.4 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

繼續輸入我們的第一行 Python 語句,開啟我們的資料分析之旅吧:

>> print("Life is short, I do data analysis in python!")
"Life is short, I do data analysis in python!"

如果把 Python 比作公主的話,那麼怎麼也得配個丫鬟才對,是吧?我們常說 Python 廣泛應用與資料分析、爬蟲、網路程式設計、人工智慧、運維等領域,其實是因為基於 Python 有非常多的第三方庫,這些庫極大地豐富了 Python 的生態,使得 Python 近乎無所不能。那我們該怎麼安裝這些第三方庫呢?

沒錯,PIP 工具應該說是這塊的小能手了。PIP 直觀上理解,就是為 Python 量身定做的管理第三方庫的小工具,扮演了丫鬟的角色。讓我們先來撩一下 PIP ,在 cmd 視窗中輸入命令檢視 PIP 的版本和安裝路徑:

C:\Users\Administrator>pip --version
pip 19.1 from d:\users\lemeng\appdata\local\programs\python\python37\lib\site-packages\pip-19.1-py3.7.4.egg\pip (python 3.7)

如果系統提示 PIP 不是最新版本,請繼續執行如下命令:

C:\Users\Administrator>python -m pip install --upgrade pip

PIP 是不是就這麼簡單呢?我們稍後揭曉。

2. Jupyter Notebook,最適合做資料分析的程式設計工具

準確來講,Jupyter Notebook 不僅僅適合做資料分析,而且它非常適合新入門的朋友練習 Python

Jupyter Notebook 是一種以 「問答式」 為重要特徵的 Python 編輯器,就像排版精良的筆記,你的程式、執行結果,井然有序。

本專欄重點介紹在 Python 資料分析過程中的 Jupyter Notebook 的使用。在實際案例中,你輸入一句,它便返回程式執行的結果。並且執行後程式的記憶體會被鎖定,直到程式關閉,變數才會被銷燬、記憶體被釋放。

這種特徵,在資料分析領域尤為重要。在資料分析的過程中,一切套路都是圍繞著資料本身的特點來的。特別是對於中大型的資料表格,只有熟悉了資料的特點,才能對資料進行下一步的分析。這也正是資料程式設計與網路程式設計最大的差別。

我們先安裝 Jupyter Notebook,然後通過一個範例來感受它的便捷。

我們推薦通過 PIP 工具進行一鍵式安裝,在 cmd 視窗輸入如下命令:

C:\Users\Administrator>pip install jupyter

這裡推薦給你的 pip 換源,這裡以 Windows10 為例:

  1. 先開啟檢視檔案字尾:檢視 -> 勾選副檔名

  2. 首先在 Windows 的資料夾「快捷鍵:Win 圖示+ E 」視窗輸入 : %APPDATA%

    image-20200803172555191

  3. 然後在底下新建 pip 資料夾,然後到 pip 資料夾裡面去新建個 pip.ini ,然後再裡面輸入內容

  4. 輸入一下內容:

    [global]
    index-url = http://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted-host=mirrors.aliyun.com
    

  5. 自此就換源結束

  6. 補充:

    從 pip10.0.0 開始,有個 config 子命令可用來改設定,無需關心不同作業系統下組態檔路徑。

    詳見討論:Create a command to make it easy to access the configuration file · Issue #1736 · pypa/pip

    實際使用例子:

    # 阿里源
    pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
    
    # 豆瓣源
    pip config set global.index-url https://pypi.douban.com/simple
    
    # 阿里雲 http://mirrors.aliyun.com/pypi/simple/
    # 科技大學 https://pypi.mirrors.ustc.edu.cn/simple/
    # 豆瓣(douban) http://pypi.douban.com/simple/
    # 清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/
    # 中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/
    

提示安裝成功後,推薦設定一下我們常用的 Python 學習路徑,這樣新建和儲存檔案均會預設放置到該路徑下。在 cmd 視窗中繼續輸入:

C:\Users\Administrator>jupyter notebook --generate-config
Writing default config to C:\Users\Administrator\.jupyter\jupyter_notebook_config.py

編輯上一步提示的 jupyter_notebool_config.py 檔案,找到 c.Notebook.notebok_dir ,放開前面的註釋,並按照下圖修改完成(路徑根據自己的實際情況填寫,注意避免放置中文路徑,給自己挖坑),儲存並關閉。

圖片描述

到此為止,Python 環境就完成設定了,下面我們就來撩一下吧。

cmd 視窗中輸入 jupyter notebook ,啟動環境:

C:\Users\Administrator>jupyter notebook

通過 New 選單,新建一個 Python 3 的程式後,在新的頁面繼續輸入:

for i in range(10):
    print(i, end=",")

jupyter notebook 介面及效果如下:

圖片描述

Jupyter 的常用工具列上,有儲存、剪下、複製、貼上、執行、停止等按鈕,滑鼠移動到按鈕上會有提示,總體來說,還是很人性化的,相信上手應該沒有難度的。

這裡請朋友們注意了,在本專欄的後續章節中,除特殊說明外,Python 程式的演示都是在 Jupyter Notebook 中進行的。

3. 資料分析三大神器

  • Numpy ,一款用於科學計算時的基礎模組

簡單來說,Numpy 提供了一個 N 維陣列容器,基於 Numpy ,你可以非常方便地進行陣列的變換與計算,比 Python 自帶的巢狀列表的效率高多了,不僅僅是執行效率,開發效率也是極高。並且後續的資料分析工具很多都是基於 Numpy 開發而來,也就是說想玩轉資料分析,必須要安裝並且瞭解 Numpy。

推薦用 PIP 安裝 Numpy ,正常有 2 種方法:線上安裝和離線安裝。如果網路條件還可以,可以在 cmd 視窗中輸入:

C:\Users\Administrator>pip install numpy

PIP 會根據 Python 的版本,自動搜尋匹配的 Numpy 版本,進行安裝。

如果網路不佳的朋友,因為國外的站點連結並不穩定,很可能會出現下載失敗的情況,這裡給大家推薦阿里雲映象站點 http://mirrors.aliyun.com/pypi/simple/ 。朋友們可以進入阿里雲映象點,下載對應的包到本地,比如 c:/盤 ,進行本地安裝。安裝命令中需要帶上檔案的本地路徑,如下:

C:\Users\Administrator>pip install c:/numpy-1.17.2-cp37-cp37m-win_amd64.whl

這裡告訴大家如何去尋找適合自己的版本, cp37 表示適用於 Python3.7 ,win_amd64 表示適用於 windows 64bit 平臺。 whl 格式的檔案本質上是一個壓縮包,裡面包含了 py 檔案,以及經過編譯的 pyd 檔案,方便安裝。

本專欄後續仍會有部分庫需要用 PIP 去安裝,朋友們都可以嘗試用阿里雲映象站點進行離線安裝,套路都一樣。 「也可以使用換源」

線上安裝本質上也是去站點搜尋合適的 whl 檔案進行安裝。

安裝完成後,我們嘗試一下導包操作,如果導包成功,那說明 Numpy 的安裝一切順利。在 Jupyter Notebook 輸入如下並執行:

# numpy導包操作
import numpy as np
  • Pandas,一款為解決資料分析而生的工具

直白的說, Pandas 其實就是一個表格容器,並且提供了很多很秀的騷操作,能夠滿足日常各種 「外掛」 需求。

Excel 大家都用吧, Excel 也有很多騷操作,比如篩選、函數、排序、透視、繪圖、複製等等。

但是巨量資料時代, Excel 有很多侷限性,自動化只能靠 VBA ,但是自動化程度有限;單個 Excel 表格容量有限,超過 10 萬行就執行困難,執行效率不行;無法與其他工具相容,統計函數有限,無法客製化…

對於 Pandas 來說,這些都不是問題。

Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。依託 Python 語法,可以方便地進行函數語言程式設計和物件導向的程式設計,可以方便地和各類資料庫進行對接,可以根據資料集的特點客製化各類函數,並且 Pandas 還是入門資料探勘與人工智慧的基礎。

Pandas 的安裝和 Numpy 一樣。但是需要注意的是,Pandas 是基於 Numpy 封裝的,所以安裝順序 Numpy 在前,Pandas 在後,切勿調換順序。

C:\Users\Administrator>pip install pandas

如果網速不佳,推薦阿里雲離線安裝,過程請參考 Numpy。「或者換源」

安裝完成後,我們嘗試一下導包操作,如果導包成功,那說明目前一切順利。

# pandas導包操作
import pandas as pd
  • Matplotlib,入門必學的視覺化工具

matplotlib 是基於 Numpy 開發的繪圖工具,可以非常方便地繪製出版品質級別的圖形,效果甩 Excel 不是一點半點。開發者可以僅需要幾行程式碼,便可以生成繪圖。一般可繪製折線圖、散點圖、柱狀圖、餅圖、直方圖、子圖等等。

安裝過程也非常簡單,跟 Numpy 一樣,命令列中輸入:

C:\Users\Administrator>pip install matplotlib 

如果網速不佳,推薦阿里雲離線安裝,過程請參考 Numpy。

安裝完成後,我們看一下 demo,看看 Jupyter 和視覺化工具一起,能夠擦出什麼樣的火花呢?我們輸入如下程式:

# 這是 Python 的一個魔法函數,在命令列下起作用,方便圖形在 Jupyter Notebook 中顯示
%matplotlib inline
# 導包,約定俗成,固定格式
import matplotlib.pyplot as plt
import numpy as np

# 生成0-2π區間的含100項的等差數列
x = np.linspace(0,2*np.pi,100)
# 求x值對應的sin,賦值給y
y = np.sin(x)
# 繪圖
plt.plot(x,y)

image-20200803201039003

Matplotlib 繪圖的最大特點就是依託於 Python,對資料進行清洗、與資料的互動、圖形介面的互動都非常方便,一站式搞定。後續的課程,我將為大家詳細介紹,如何用這套工具,做一些炫酷的事情。

4. Pyecharts,一款國民女神級的視覺化工具

在這之前,我們先來聊一下 Echarts

Echarts 是一個使用 JavaScript 實現的開源視覺化庫,自問世以來迅速得到了朋友們的好評,效果炫酷、使用高效、可互動、可高度客製化等等,好評不一一列舉了。

對於學習 Python 的朋友們來說,唯一比較頭疼的,是需要具備一定的 JavaScript 知識,特別是對於新入門的朋友,這一點似乎有一點點不太友好。

但是這一點對於學習完本專欄的朋友們來說,完全不是問題。這裡我們推薦一款好用的工具 Pyecharts ,語法完全相容 Python,效果全面向 Echarts 看齊。

多說不練假把式,我們來看看如何安裝 Pyechartscmd 命令列中利用 PIP 執行安裝任務:

C:\Users\Administrator>pip install pyecharts -U

這裡要注意一下,Pyecharts 一共分為 2 個版本,Version0.5xVersion1.x ,兩個版本並不相容。 v1.x 的語法全面擁抱TypeHint ,表達方式更加 OOP(Object Oriented Programming),寫法更靈活。 v0.5x 則還是原生的寫法,跟指令碼語言的寫法非常接近。

本著與時俱進的思想——先進即好用,我們推薦朋友們使用最新的版本。事實上, v0.5x 經過我的多方面測試,跟 notebook 的相容性存在一些問題,v1.x 的效果則更加穩定一些。為了降低版本因素可能對朋友們造成的困擾,本專欄的案例基於 Version1.8.1 編寫。

完成安裝後,我們先來看看效果吧,輸入如下 Python 程式:

# 匯入繪圖工具
from pyecharts import options as opts
from pyecharts.charts import Bar

attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子" , "高跟鞋" , "襪子"]
v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]
bar = (
        Bar()
        .add_xaxis(attr)
        .add_yaxis("商家A", v1)
        .add_yaxis("商家B", v2)
        .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本範例", subtitle="我是副標題"))
    )
# 在 notebook 中輸出
bar.render_notebook()

image-20200803201951148

如果出現上面的提示,是沒有問題的,1.9 還沒釋出呢!

5. 總結

到這裡,整個基於 Python 的資料分析環境就搭建完成了。總的來說,搭建這套環境的意義就在於:

  • 提供了一套資料淨化的平臺,你可以方便地觀察資料的規律,並完成對應指標的統計、分析;
  • 提供了一個視覺化的平臺。從傳統的繪圖方式,向自動化、批次化、可互動式的視覺化方式轉變;
  • 拓展了資料分析的來源。Python 的能力也將在這個方面得到充分的展現。用了這套平臺,你的資料來源不再侷限於 Excel 表格。隨著技能點的逐步點亮,你可以自由地從各類資料庫、網上線上表格、各類文字檔案等獲取。
  • 技能將更加全面化。你能夠操作的資料也不僅僅侷限於數位,文字、圖片等都將成為你的操作物件;操作水平也更加精細化,並且效率極大提升;資料量也從幾千的維度,迅速提升到百萬級別。至於更大的資料量,則依賴更好的硬體效能和一定的建模能力,但是可以肯定的是,Python 資料分析這套技能不會過時;
  • 最為重要的是,這裡提供了一個技能提升和職場晉升的階梯。利用這套平臺,你可以專注於成為一名資料分析師,也可以轉型成為一名巨量資料工程師,可以往上晉升成為一名資料探勘工程師、甚至是資料科學家、演演算法專家。

所以朋友們還等什麼,趕緊加入學習吧。