由于学习课程要求完成的大作业,最近在接触基于python的机器学习以及深度学习框架,大作业是一个大数据分析类题目,由于以前没有这方面经历,因此准备花1周的时间专门学习这方面知识并完成大作业。
数据挖掘
1. 图表绘制
1.1 Matplotlib 三层结构
# 快速入门
import matplotlib.pyplot as plt
%matplotlib inline
plt.figure()
plt.plot([1,0,9],[1,4.5,9])
plt.show()
-
画板层(Canvas)
- 画布层(Figure):
plt.figure()
- 创建多个绘图区/坐标系
axes:plt.subplots
axis 轴
- 画布层(Figure):
-
辅助显示层
辅助显示层为Axes(绘图区)内的除了根据数据绘制出的图像之外的内容,主要包括Axes外观(facecolor)
、边框线(spines)
、坐标轴(axis)
、坐标轴名称(axis label)
、坐标轴刻度(tick)
、坐标轴刻度标签(tick label)
、网格线(grid)
、图例(legend)
、标题(title)
等内容 -
图像层
图像层指Axes内通过plot、scatter、bar、histogram、pie等函数根据数据绘制出的图像 -
总结
- Canvas(画板) 位于最底层,用户一般接触不到
- Figure(画布) 建立在Canvas之上
- Axes(绘图区) 建立在Figure之上
- 坐标轴(axis)、图例(legend)等辅助显示层以及图像层都是建立在Axes之上
图像属性设置
-
设置画布属性与图片保存
plt.figure(figsize(),dpi=) figsize: # 指定图的长度 dpi: # 图像清晰度 plt.savefig(path) # 图像保存 ''' 注意,当plt.show使用的时候,其会自动释放plt所有资源,因此所有操作应该在show操作之前 '''
-
x、y刻度值设置
# 设置x轴刻度
plt.xticks(x,**kwargs)
# x:要显示的刻度值
# 设置y轴刻度
plt.yticks(y,**kwargs)
# y:要显示的刻度值
'''
@当使用plot的方法的时候,设置刻度值的方法为plt.set_xticks
@若要使刻度值获得一定的标签,则使用plt.set_xticklabels
'''
-
添加网格显示
为了更清楚地观察图形对应的值
plt.grid(True,linestyle='---',alpha=0.5)
grid(网格线)\linestyle(线条风格)\alpha(透明度)
-
添加描述信息
添加x轴、y轴描述信息及标题
x\y\tiele对应关系如下代码所示
plt.xlabel("时间") plt.ylabel("温度") plt.tittle("标题")
1.2 散点图(scatter)
我们前面已经学过了散点图plot
- 散点图的绘制
2. Numpy
ndarray
常用属性
属性名字 | 属性解释 |
---|---|
ndarray.shape | 数组维度的元组 |
ndarray.ndim | 数组维度 |
ndarray.size | 数组中的元素数量 |
ndarray.itemsize | 一个数组元素的长度(字节) |
ndarray.dtype | 数组元素的类型 |
-
生成数组的方法
-
生成0和1的数组
``` shape为数组形状 若一维可表示为(4,) 二维可表示为(3,2) 三维可表示为(2,3,3) ``` np.zeros(shape) np.ones(shape)
-
从现有数组生成
# 深拷贝 np.array()、np.copy() # 浅拷贝 np.asarray()
-
生成固定范围的数组
np.linspace() np.arange() ``` 解释: np.linspace(0,10,100) 生成左右闭合的集合,[0,10] 等距离 np.arange() arange(a,b,c) 生成左闭右开的集合,[a,b) c是步长 ```
-
生成随机数组
# 均匀分布 ``` 代码表达: np.random.uniform(low=0.0,high=1.0,size=None) 功能:从一个均匀分布[low,high]中随机采样,注意定义域是左闭右开,即包含low,不包含high. 参数介绍: low:采样下界,float类型,默认值为0; high:采样上届,float类型,默认值为1; size:输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k),则输出mnk个样本,缺省时输出1个值。 返回值:ndarray类型,其形状和参数size中描述一致。 ``` # 正态分布 ``` μ 期望值 # 对应loc σ 波动程度、离散程度,其值为方差开方 # 对应scale 代码表达: data = np.random.normal(loc=1.75,scale=2,size=100000) ```
-
-
数组的索引、切片
# 案例:随机生成8只股票2周的交易日涨幅数据 stock_change = np.random.normal(loc=0,scale=1,size=(8,10)) # 获取第一个股票的前3个交易日的涨跌幅数据 stock_change[0,0:3]
-
形状修改
# 需求:让刚才的股票行、日期列反过来,变成日期行、股票列 ``` 能实现需求的方法 ndarray.reshape() # 返回新的ndarrya,只修改形状比如将8行10列转成10行8列,并不会对数组进行转置 ndarray.resize() # 没有返回值,对原始的ndarray进行了修改 ndarray.T # 转置 行变成列,列变成行 ```
-
类型修改
-
数组的去重
-
小结