【机器学习】利用 Python 进行数据分析的 Windows 环境配置(Jupyter,Matplotlib,Pandas)

环境配置

安装 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

进入官网下载相关文件

//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

进入官网下载相关文件

//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()