1.numpy中将矩阵变成一行:
a = np.arange(start=7,stop=1,step=-1).reshape((3,2)) print(a.flatten())
结果:
[[7 6]
[5 4]
[3 2]]
[7 6 5 4 3 2]
2.置换:
a = np.arange(start=7,stop=1,step=-1).reshape((3,2)) print(np.transpose(a)) print(a.T) #或者这样写结果:
[[7 5 3] [6 4 2]] [[7 5 3] [6 4 2]]
注意:transpose不能将序列置换
c = np.arange(4) print(c.T)结果还是: [0 1 2 3]
如果想要置换需要这样做:
方法一:
c[np.newaxis,:].T这相当于给序列加了一个维度,这样输出的结果就是我们想要的:[[0][1][2][3]]
冒号在后面是再行上加了维度,冒号在前面则是在列上加了维度
方法二:
在序列后面用reshape()方法,重置它的维度也是一样的效果
3.矩阵乘法:
但是,等到矩阵乘以矩阵的时候,一切就不一样了。这个结果是怎么算出来的? 教科书告诉你,计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3。
可以使用numpy中的 dot() 方法:
np.dot(a,a.T)
4.axis:
axis = 1 :表示对列进行操作
axis = 0 :表示对行进行操作
5.矩阵的合并:
a = [[7 6 5] [4 3 2]]
b = [[1 2 3] [4 5 6]]
上下合并:
np.vstack((a,b)) = [[7 6 5] [4 3 2] [1 2 3] [4 5 6]] #注意 这里方法内传入的是tuple,可以传入多个矩阵
左右合并:
np.hstack((a,b)) = [[7 6 5 1 2 3] [4 3 2 4 5 6]]
自定义维度合并:
np.concatenate((a,b,c...),axis = 0) #这里 axis = 0 是上下合并,1的话是左右也就是横向合并
6.矩阵的切割
用到numpy方法
split(ary,indices_or_sections,axis=0)
第二个参数是指分成多少行或者列,上面的方法只能将矩阵等量分割,如果需要不等量分割,需要用下面的方法:
array_split()这样就能将矩阵分割成不等量的块,传入的参数跟split()相同。
未完待续。。。。。