numpy随笔

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()相同。

未完待续。。。。。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值