目录
- 数据挖掘三大模块
- 一、numpy
- 二、pandas
- 三、matplolib
数据挖掘三大模块
一、numpy
numpy是python中一个与科学计算有关的库,本文将介绍一些常用的numpy函数,使用numpy之前需要先引入,输入import numpy as np,我们一般将numpy简化为np。
1.np.arange(n):生成0至n-1个整数。
2.a.reshape(m,n):将a重新定义为一个m行n列的矩阵。
3.a.shape:打印a的行和列。
4.a.ndim:求a的维度。
5.a.size:输出a中的元素个数。
6.np.zeros((m,n)):生成m行n列的零矩阵,应当注意的是,函数中要传入一个元组。此时生成的矩阵0后面有一个小数点,因为系统默认数据类型为浮点型,要想获得整数类型,我们应预先指定好数据类型。
7.np.ones((k,m,n),dtype=np.int32):生成k个m行n列的单位矩阵,且矩阵中的数据类型为整数型。
8.np.arange(m,n,k):生成m到n的以k为步长切片的数据。
9.np.linspace(m,n,k):在m到n的数据中按等间距取k个值。
10.若A、B为同维矩阵,则A*B返回的是A和B矩阵对应位置相乘得到的结果,A.dot(B)或np.dot(A,B)返回的才是矩阵乘法所得的结果。
11.np.exp(A)或np.sqrt(B):分别得到e的B次幂和矩阵B中每个数开方所得到的结果。
12.np.floor():向下取整。
13.a.ravel():将矩阵a重新拉伸成一个向量,拉伸后可以重新reshape成一个新矩阵。
14.a.T:求a的转置矩阵。
15.a.reshape(n,-1)或a.reshape(-1,n):确定一个矩阵的行(列)后,相应的列(行)也直接被确定,因此输入-1即可。
16.np.hstack((a,b)):将矩阵a和b横向拼接。
17.np.vstack((a,b)):将矩阵a和b纵向拼接。
18.np.hsplit(a,n):将矩阵a横向切为n份。
19.np.hsplit(a,(m,n)):在a的索引为m和n的空隙横向切开。
20.np.vsplit(a,n):将矩阵a纵向切为n份。
21.np.hsplit(a,(m,n)):在a的索引为m和n的空隙纵向切开。
22.矩阵的复制:
b = a:此时得到的b与a的地址是完全相同的,也就是a,b只是同一个矩阵的不同名称,对其中任意一个矩阵操作都会引起另一个矩阵相同的变化。
b = a.view():此时得到的b与a的地址不同,但是对b的操作会改变a。
b = a.copy():此时得到的是两个完全独立的矩阵。
23.b = np.tile(a,(m,n)):将矩阵a的行数扩大m倍,列数扩大n倍。
24.np.sort(a,axis=k):将矩阵a在k维排序。
25.np.argsort(a):返回将a升序排列后的索引值(默认排列方式为升序)。
二、pandas
三、matplolib
plt.savefig(‘test’, dpi = 600) :将绘制的图画保存成png格式,命名为 test
plt.ylabel(‘Grade’) : y轴的名称
plt.axis([-1, 10, 0, 6]) : x轴起始于-1,终止于10 ,y轴起始于0,终止于6
plt.subplot(3,2,4) : 分成3行2列,共6个绘图区域,在第4个区域绘图。排序为行优先。也可 plt.subplot(324),将逗号省略。
.plot函数
plt.plot(x, y, format_string, **kwargs): x为x轴数据,可为列表或数组;y同理;format_string 为控制曲线的格式字符串, **kwargs 第二组或更多的(x, y, format_string)
format_string: 由 颜色字符、风格字符和标记字符组成。
颜色字符:‘b’蓝色 ;‘#008000’RGB某颜色;‘0.8’灰度值字符串
风格字符:‘-’实线;‘--’破折线; ‘-.’点划线; ‘:’虚线 ; ‘’‘’无线条
标记字符:‘.’点标记 ‘o’ 实心圈 ‘v’倒三角 ‘^’上三角
eg: plt.plot(a, a*1.5, ‘go-’, a, a*2, ‘*’) 第二条无曲线,只有点
.plot 显示中文字符
pyplot并不默认支持中文显示,需要rcParams修改字体来实现
rcParams的属性:
‘font.family’ 用于显示字体的名字
‘font.style’ 字体风格,正常’normal’ 或斜体’italic’
‘font.size’ 字体大小,整数字号或者’large’ ‘x-small’
eg:
import matplotlib
matplotlib.rcParams[‘font.family’] = ‘STSong’
matplotlib.rcParams[‘font.size’] = 20
设定绘制区域的全部字体变成 华文仿宋,字体大小为20
中文显示2:只希望在某地方绘制中文字符,不改变别的地方的字体
在有中文输出的地方,增加一个属性: fontproperties
eg:
plt.xlabel(‘横轴:时间’, fontproperties = ‘simHei’, fontsize = 20)
pyplot文本显示函数:
plt.xlabel():对x轴增加文本标签
plt.ylabel():同理
plt.title(): 对图形整体增加文本标签
plt.text(): 在任意位置增加文本
plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dict)
: 在图形中增加带箭头的注解。s表示要注解的字符串是什么,xy对应箭头所在的位置,xytext对应文本所在位置,arrowprops定义显示的属性
eg:
plt.xlabel(‘横轴:时间’, fontproperties = ‘SimHei’, fontsize = 15, color = ‘green’)
plt.ylabel(‘纵轴:振幅’, fontproperties = ‘SimHei’, fontsize = 15)
plt.title(r’正弦波实例 $y=cons(2\pi x)$’ , fontproperties = ‘SimHei’, fontsize = 25)
plt.annotate (r’%mu=100$, xy = (2, 1), xytext = (3, 1.5),
arrowprops = dict(facecolor = ‘black’, shrink = 0.1, width = 2)) # width表示箭头宽度
plt.text (2, 1, r’$\mu=100$, fontsize = 15)
plt.grid(True)
plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dict)
plt子绘图区域
plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1):设定网格,选中网格,确定选中行列区域数量,编号从0开始。
eg:
plt.subplot2grid((3, 3), (1, 0), colspan = 2) : (3,3)表示分为3行3列,(1,0)表示选中第1行,第0列的区域进行绘图,colspan=2表示在选中区域的延伸
Plot的图表函数
plt.plot(x,y , fmt) :绘制坐标图
plt.boxplot(data, notch, position): 绘制箱形图
plt.bar(left, height, width, bottom) : 绘制条形图
plt.barh(width, bottom, left, height) : 绘制横向条形图
plt.polar(theta, r) : 绘制极坐标图
plt.pie(data, explode) : 绘制饼图
plt.scatter(x, y) :绘制散点图
plt.hist(x, bings, normed) : 绘制直方图