【機器學習】利用 Python 進行資料分析的 Windows 環境設定(Jupyter,Matplotlib,Pandas)

2022-10-08 18:01:00

環境設定

安裝 python

博主使用的版本是 3.10.6

在 Windows 系統上使用 Virtualenv 搭建虛擬環境

  • 安裝 Virtualenv

開啟 cmd 輸入並執行

pip install Virtualenv

等待安裝完成即可,如下圖。

  • 建立虛擬環境

進入自定義資料夾(Virtualenv),開啟 cmd ,輸入並執行

py -3 -m venv 虛擬環境名稱

可以看到,自定義檔案(Virtualenv)中建立了資料夾(virtualenvironment),即自定義的虛擬環境名稱。

  • 進入虛擬環境

進入該資料夾,再進入 Scripts,開啟 cmd ,輸入並執行

activate
  • 退出虛擬環境
deactivate
  • 將Scripts位置加入環境變數(可忽略)

安裝環境變數之後,可以在任意位置開啟 cmd 進入虛擬環境,而不用先進入 Scripts 資料夾

軟體安裝(Windows 版)

更新 pip

  • 進入虛擬環境
  • 更新 pip 命令

輸入並執行

python.exe -m pip install --upgrade pip

安裝 matplotlib

輸入並執行

pip install matplotlib

安裝 pandas

輸入並執行

pip install pandas

安裝 TA-Lib

進入官網下載相關檔案

https://www.lfd.uci.edu/~gohlke/pythonlibs/

注意只能下載指定版本,與本機 Python 版本一致

比如:TA_Lib-0.4.24-cp38-cp38-win_amd64.whl(前面是庫版本 0.4.24,後面是對應的python版本 3.8。最後的數位代表 windows系統。32 位或者 64 位。電腦屬性檢視或者 cmd 裡 python 檢視)

一定要一一對應。否則會報 ERROR: TA_Lib-0.4.24-cp38-cp38-win32.whl is not a supported wheel on this platform.平臺不符合的錯誤。

下載出來的檔案不能改名。否則會報ERROR: TA_Lib64.whl(你更改後的檔名) is not a valid wheel filename.檔名無效錯誤。

將該檔案放到虛擬環境的 Scripts 資料夾中,該步驟主要為了方便,如果沒有設定環境變數

輸入並執行(如果該檔案在其他資料夾,請輸入檔案絕對地址)

pip install TA_Lib-0.4.24-cp310-cp310-win_amd64.whl

安裝 tables

進入官網下載相關檔案

https://www.lfd.uci.edu/~gohlke/pythonlibs/

注意只能下載指定版本,與本機 Python 版本一致

輸入並執行

pip install tables-3.7.0-cp310-cp310-win_amd64.whl

安裝 jupytyer

輸入並執行

pip install jupyter

Jupyter Notebook 使用

  • 進入虛擬環境
  • 輸入並執行,即可進入網頁端
jupyter notebook
# 或者
ipython notebook

可建立 python 檔案,進行如下操作

每一行是一個 cell

快捷鍵:

  • ctrl enter :執行當前 cell ,留在當前 cell
  • shift enter :執行當前 cell ,建立並進入下一個 cell

命令模式

Y:cell 切換到 code 模式

M:cell 切換到 markdown 模式

A:在當前 cell 的上面新增 cell

B:在當前 cell 的下面新增 cell

雙擊D:刪除當前 cell

編輯模式

多遊標操作:Ctrl 鍵點選滑鼠

回退:Ctrl+Z

補全程式碼:變數、方法後跟 Tab

為一行或多行程式碼新增/取消註釋:Ctrl+/

Matplotlib 使用

基本概念

什麼是Matplotlib : 畫二維圖表的python庫

Matplotlib 三層結構

  • Canvas(畫板)位於最底層,使用者一般接觸不到
  • Figure(畫布)建立在Canvas之上
  • Axes(繪圖區)建立在Figure之上
  • 座標軸(axis)、圖例(legend)等輔助顯示層以及影象層都是建立在Axes之上

快速入門

步驟

  1. 建立畫布
  2. 繪製影象
  3. 顯示影象
import matplotlib.pyplot as plt
import random

# 需求:再新增一個城市的溫度變化
# 收集到北京當天溫度變化情況,溫度在1度到3度。 

# 1、準備資料 x y
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
y_beijing = [random.uniform(1, 3) for i in x]

# 中文顯示問題
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號


# 2、建立畫布
plt.figure(figsize=(20, 8), dpi=80)

# 3、繪製影象
plt.plot(x, y_shanghai, color="r", linestyle="-.", label="上海")
plt.plot(x, y_beijing, color="b", label="北京")

# 顯示圖例,這裡顯示圖例的前提是plt.plot時要新增標籤label=「」
plt.legend(loc = "upper right")#legend有自己的引數可以控制圖例位置

# 修改x、y刻度
# 準備x的刻度說明  ticks表示刻度
x_label = ["11點{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
#步長為5,即不讓刻度顯示過於密集第一處的x[::5]也要寫,應該是用來給x_label定位的
plt.yticks(range(0, 40, 5))

# 新增網格顯示,其中的alpha是網格的透明程度
plt.grid(linestyle="--", alpha=0.5)

# 新增描述資訊
plt.xlabel("時間變化")
plt.ylabel("溫度變化")
plt.title("上海、北京11點到12點每分鐘的溫度變化狀況")

# 儲存圖片,注意必須放在 show 之前, 因為 show 之後會釋放快取
plt.savefig("test.png")

# 4、顯示圖
plt.show()

  • 圖形風格
  • 圖例位置
  • 建立多個繪圖區
figure, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80)

範例:

import matplotlib.pyplot as plt
import random

# 需求:再新增一個城市的溫度變化
# 收集到北京當天溫度變化情況,溫度在1度到3度。 

# 1、準備資料 x y
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
y_beijing = [random.uniform(1, 3) for i in x]

# 2、建立畫布
# plt.figure(figsize=(20, 8), dpi=80)
figure, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80)

# 3、繪製影象
axes[0].plot(x, y_shanghai, color="r", linestyle="-.", label="上海")
axes[1].plot(x, y_beijing, color="b", label="北京")

# 顯示圖例
axes[0].legend()
axes[1].legend()

# 修改x、y刻度
# 準備x的刻度說明
x_label = ["11點{}分".format(i) for i in x]
axes[0].set_xticks(x[::5])
axes[0].set_xticklabels(x_label)
axes[0].set_yticks(range(0, 40, 5))
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_label)
axes[1].set_yticks(range(0, 40, 5))

# 新增網格顯示
axes[0].grid(linestyle="--", alpha=0.5)
axes[1].grid(linestyle="--", alpha=0.5)

# 新增描述資訊
axes[0].set_xlabel("時間變化")
axes[0].set_ylabel("溫度變化")
axes[0].set_title("上海11點到12點每分鐘的溫度變化狀況")
axes[1].set_xlabel("時間變化")
axes[1].set_ylabel("溫度變化")
axes[1].set_title("北京11點到12點每分鐘的溫度變化狀況")

# 4、顯示圖
plt.show()