1. import numpy as np 矩阵操作的库
| 操作 | 描述 |
|---|---|
| X * Y | 两个矩阵对应位置元素相乘 |
| X.dot(Y) | 矩阵的内积(一行乘以一列) |
| np.random.random((3,4)) | 生成一个三行四列的随机数(-1,1)矩阵 |
| np.floor(a) | 将数值a向下取整 |
| np.array([1,2,3]) | Python list转成ndarray |
| X.reshape((m,n)) | 将原矩阵改成m*n矩阵 |
| X[:,0:2] | 表示取第0,1列的所有行 |
| X.min()或X.max() | 返回矩阵中的最小值或最大值 |
| X.sum(axis=0) | 返回对每一列求和的结果 |
| X.sum(axis=1) | 返回对每一行求和的结果 |
| np.zeros((3,4)) | 返回一个值全为0的3*4的矩阵 |
| np.ones((3,4)) | 返回一个值全为1的3*4的矩阵 |
| np.full((3,4),6) | 返回一个值全为6的3*4的矩阵 |
| X.ravel() | 将一个矩阵铺成一行输出 |
| np.hstack((X,Y)) | 将矩阵X和Y水平拼接,增加了列数 |
| np.vstack((X,Y)) | 将矩阵X和Y竖直拼接,增加了行数 |
| np.hsplilt((X,3)) | 将矩阵在水平方向等分成3份,返回三个矩阵 |
| np.hsplilt((x,(3,5))) | 将矩阵水平切成0~2列,3~4列,5~n列 |
| X.argmax(axis=0) | 返回矩阵中每列最大元素的下标 |
| X.argmax(axis=1) | 返回矩阵中每行最大元素的下标 |
| X.argmax() | 返回矩阵中最大元素的下标 |
| np.tile(X,(3,4)) | 把矩阵X整体扩增3行、4列 |
| np.sort(X,axis=1) | 将矩阵每一行递增排序 |
最后聊聊关于拷贝赋值的几种做法的区别:(b=a,b=a.view(),b=a.copy())
> a = np.ones((3,3))
> b = a
> c = a.view()
> d = a.copy()
# 三种做法,得到的元素值都是相等的
> print(a == b)
array([[ True, True, True],
[ True, True, True],
[ True, True, True]])
> print(a == c)
array([[ True, True, True],
[ True, True, True],
[ True, True, True]])
# 三种做法,新对象引用的对象不同
> print(a is b)
True
> print(a is c)
False
> print(a is d)
False
# 看看它们在内存中的id,来核实上面的结果
> print(id(a))
140384952264624
> print(id(b))
140384952264624
> print(id(c))
140384921209632
> print(id(d))
140384921208992
# 【重要】修改b,c,d中的某个元素,检查原矩阵a中的元素是否发生变化
> print(a)
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
> b[0][0] = 2
> c[1][1] = 3
> d[2][2] = 4
> print(a)
array([[2., 1., 1.],
[1., 3., 1.],
[1., 1., 1.]])
# 发现b,c都还是操作的原矩阵,而d操作的是新矩阵。
2. import pandas as pd 数据处理的库
pandas对象是一个DataFrame对象(data),data的每一列取出来,是一个Series对象(ss),ss.values又是一个numpy.ndarray对象
| 操作 | 描述 |
|---|---|
| data = pd.read_cdv(’**.csv’) | 读取数据集,返回的是DataFrame对象 |
| data.columns | 返回数据的列名 |
| data.shape | 返回数据的行和列 |
| data.head(4) | 返回data的前4行 |
| data.tail(3) | 返回data的后3行 |
| data.loc[0] | 取第1行的数据 |
| data.loc[:5] | 取前5行的数据 |
| data[‘c1’] | 取列名为’c1’的该列数据 |
| data[[‘c1’,‘c2’,‘c3’]] | 取列名为’c1’,‘c2’,'c3’的三列数据 |
| del data[‘c1’] | 删除data中的’c1’列 |
| data = data.drop(‘c1’,axis=1) | 删除data中的’c1’列 |
| data.drop(‘c1’,axis=1, inplace=True) | 删除data中的’c1’列 |
| data[‘new_column’] = columns | 增加新的一列特征值 |
| data.sort_values(‘c1’,inplace=True,ascending=True) | 数据集按照’c1’列的值升序排序 |
| data.reset_index(drop=True) | 排序后原index还在,重新生成 |
| pd.isnull(data[‘c1’]) | 判断’c1‘列是否存在缺失值 |
| data[‘c1’].mean() | 返回’c1’列的均值 |
| data.dropna(axis=0, subset=[‘c1’,’c2’]) | 'c1’与’c2’两列有缺失值的话删除该行 |
| data.loc[83,’c1’] | 定位第83行,列名为c1的元素 |
3.import matplotlib.pyplot as plt 绘制图像的库
| 操作 | 描述 |
|---|---|
| plt.plot(data[‘c1’],data[‘c2’]) | X轴的数据为’c1’列,Y轴数据为’c2’列 |
| plt.show() | 显示图像 |
| plt.xticks(rotation=45) | X轴倾斜45度 |
| plt.xlabel(‘this is aixs = 0’) | X轴添加标签 |
| plt.ylabel(‘this is aixs = 1’) | Y轴添加标签 |
| plt.title(‘this is title’) | 绘图添加标题 |
| fig = plt.figure() | 返回默认画图的区域 |
| fig = plt.figure(figsize = (3,4)) | 设置画图的大小(宽、高) |
| ax1 = fig.add_subplot(1,3,1) | 画布等分为一行三列,这是第一个子图 |
| ax2 = fig.add_subplot(1,3,2) | 画布等分为一行三列,这是第二个子图 |
| ax3 = fig.add_subplot(1,3,3) | 画布等分为一行三列,这是第三个子图 |
| ax1.plot([1,2,3],[2,3,1]) | 子图一绘制折线图 |
| ax2.bar([0,1,2,3,4],[1,5,2,3,4]) | 子图二绘制柱形图 |
| ax3.scatter([0,1,2,3,4],[4,2,1,3,1], c=‘blue’) | 子图三绘制散点图 |

版权声明:本文为jh1137921986原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。