Python数据分析(全) #超长预警 #思维导图 #matplotlib #numpy #pandas


内容多且杂,我按照自己理解的逻辑,写了三个思维导图,就在每一部分之后

一、基础概念及环境

1. 数据分析概念

  • 数据分析是Python数据科学的基础,也是机器学习课程的基础
  • 数据分析: 大量的数据进行分析,帮助人们作出判断,以便采取适当行动。
    在这里插入图片描述

2. anaconda

2.3 安装

  • 搜索“anaconda”镜像源
  • 下载到Linux主机。可以使用wget命令下载。
  • chomd +x 给下载的sh文件可执行权限,然后执行
  • 一路输入yes
  • 关闭终端,再打开一个新终端即生效

2.2 基本操作

  • 创建环境:

conda create -n 取的名字 python=3
确定后,输入Y安装
在这里插入图片描述

  • 激活环境:

source activate 环境名

  • 停用环境:

source deactivate

  • 安装模块:

conda install 模块名

二、matplotlib

1. 简介

  • 将数据进行可视化 ,更直观
  • 使数据更客观 ,更具说服力
  • matplotlib: 最流行的Python底层绘图库,注意做数据可视化图表 ,名字取材于MATLAB,也是模仿其构建的。

2. 基本要点

  • axis: 指x或y这种坐标轴。
  • 坐标: 图上的每一个点就是一个坐标。
  • 安装:(pip3 install matplotlib安装会报错。请使用以下命令。)

sudo apt-get install python3-matplotlib

3. 使用方法

  • 以折线图为例

3.1 最简单形式

  1. 导入模块
  2. x,y都要是可迭代对象。并且长度相同。
  3. 将x、y传入plot
  4. 展示图形(会蹦出一个框,当然,远程看不了)
# coding=utf-8
from matplotlib import pyplot as plt


x = [0, 2, 4, 6]
y = [20, 15, 14, 13]

plt.plot(x, y)  # 传入x,y通过plot绘制折线图
plt.show()  # 在执行时,展示图形
  • 如果想保存图片,控制刻度怎么办?

3.2 升级形式

  1. 我们想保存图片,就需要创建一个图形实例。figsize接收一个元组,分别是宽和高。dpi决定清晰度,意思是每英寸点个数。在绘图之后,保存即可。
  2. 控制刻度。
# coding=utf-8
from matplotlib import pyplot as plt

# 创建一个图形实例,后续对其进行设置操作
fig = plt.figure(figsize=(20,10), dpi=80)  # (宽,高),每英寸点个数

x = range(2, 26, 2)
y = [20, 15, 14, 13, 8, 16, 14, 14, 13, 11, 10, 15]

# 绘图
plt.plot(x, y)

# 设置x轴刻度
# xtick_labels = [0.5*i for i in range(4, 49, 1)  # range不接受小数步长
plt.xticks(range(2, 25, 1))  # 设置区间为2~25,步长为1

# 设置y轴刻度
plt.yticks(range(min(y), max(y)+1, 3))


# 保存
plt.savefig("./pic/t1.png")  # 可以保存为svg矢量图格式

# 展示
# plt.show()

  • 刻度想要使用字符串怎么办?字符串挤在一起怎么办?怎么使用中文?

3.3 刻度使用字符串

  • 刻度传入一个参数,只能使用数字。传入两个参数,可以使用字符串,要一一对应。
  • 刻度挤在一起,可以选择用rotation参数旋转。
  • 中文:在终端用fc-list可以查看Linux中支持的字体。在用fc-list :lang=zh可以看含有的中文字体
  • 改变字体有两种方式。方式2更可取。字体的地址,最好用绝对字体。
# coding=utf-8
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager


# 设置字体,方式1
# font = {"family" : "MicroSoft YaHei",
#         "weight" : "bold",
#         "size" : "larger"}
# matplotlib.rc("font", **font)

# 设置字体,方式2(推荐)
my_font = font_manager.FontProperties(fname="/home/pi/Font/simsun.ttc")

# 创建一个图形实例,后续对其进行设置操作
fig = plt.figure(figsize=(30,25), dpi=120)  # (宽,高),每英寸点个数

x = range(1, 121)
# 描绘一个增长的股票
y = [int(random.randint(15, 90)*0.03*i) for i in range(1, 121)]
# 绘图
plt.plot(x, y)

# 调整x轴刻度
_x = list(x)  # 可以直接用x。转换为列表是为了方便控制步长。
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["14点{}分".format(i) for i in range(60)]
# 一个参数时,只能传数字。要传入字符串,需要让两个参数一一对应
plt.xticks(_x[::5], _xtick_labels[::5], rotation=315, fontproperties=my_font)  # rotation决定旋转的度数

# 设置y轴刻度
plt.yticks(range(min(y), max(y)+1, 7))


# 保存
plt.savefig("./pic/t2.png")  # 可以保存为svg矢量图格式

# 展示
# plt.show()

3.4 添加描述信息

  • 绘制网格:
plt.grid()

grid可以接受参数。
alpha=0.4 ==>设置透明度为0.4(完全透明为0,完全不透明为1,缺省为1)

  • 添加描述信息:
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("股价 (单位¥)", fontproperties=my_font)
plt.title("两个时间段的股价变化", fontproperties=my_font)

3.5 同图表绘制多折线

  • 绘图两次即可
# 绘图
plt.plot(x, y1)
plt.plot(x, y2)

  • 给曲线添加图例(区别曲线) 用label参数,还要添加plt.legend()
# 绘图
plt.plot(x, y1, label="星期三")
plt.plot(x, y2, label="星期五")
plt.legend(prop=my_font)  # 注意是prop,其它地方用字体都是fontproperties参数

图例默认在最合适的位置。要改变位置使用loc参数,可以传入字符串,也可以传入数字0~10

best upper right upper left lower left lower right right
0 1 2 3 4 5
center left center right lower center upper center center
6 7 8 9 10

  • 绘图:颜色参数color,传入颜色单词或16进制值

  • 绘图:线型参数linestyle,传入字符串(网格也有这个参数哦)
- -. : ‘’
实线 虚线 点划线 点虚线 留空
  • 线条粗细:linewidth=5
  • 线条透明度:alpha=0.5

更多例子看官网,面向复制编程

4. 应用场景

  • 折线图: 变化。显示数据变化趋势。
  • 直方图: 统计(绘制连续性的数据)展示一组或多组数据分布情况
  • 条形图: 统计(绘制离散型的数据)能够一眼看出各个数据的大小,比较数据之间的差别。频率统计。
  • 散点图: 分布规律(判断变量之间是否存在数量关联趋势,展示离群点)

  • 其它问题:
    plt.hist()直方图==>错位?错位是因为不能被整除。
    可以用条形图,设置width(width默认0.8)即可。

5. 更多

百度Echarts
plotly可视化工具中的github。同时兼容matplotlib和pandas
seaborn比matplotlib简单,但没有交互效果

6. 思维导图

在这里插入图片描述

三、numpy

  • Python中的一个科学计算 基础库。重在数值计算

1. 创建数组&数据类型

  • 创建数组
import numpy as np

# 以下都是一维数组
np.array([5])
np.array(range(1, 12, 2))
np.arange(1, 12, 2)

在这里插入图片描述

  • 数据类型
# 指定创建的数组的数据类型
t1 = np.array([1, 0], dtype=np.bool)
t1 = np.array([1, 0], dtype="?")

# 查看t1数组里的数据类型
t1.dtype

# 修改数据类型
t2 = t1.astype("i1")

# 修改小数位数
t3 = np.array([0.233333, 0.666666])
t4 = np.round(t3, 2)  # [0.23, 0.67],和Python中round方法类似
类型 类型代码 说明
int8 i1 有符号8位(1字节)整形
uint8 u1 无符号8位(1字节)整形
int16/32/64 i2/i3/i4 以此类推
float16 f2 半精度浮点数
float32 f4或f 标准单精度浮点数。兼容C的float
float64 f8或d 标准的双精度浮点数。兼容C的double和Python的float
float128 f16或g 扩展精度浮点数
complex256 c32 复数
bool ? 布尔值

2. 数组的形状

  • 一维数组
array([0, 1, 2, 3, 4, 5])
  • 二维数组
array([
    [1, 2, 3],
    [4, 5, 6]
    ])
  • 三维数组
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值