python numpy 矩阵乘法以及列向量与行向量乘法

最近在熟悉python的科学计算,对于numpy的矩阵运算进行一些总结,和matlab还是很不一样的

import numpy as np

1、矩阵乘法

np.dot(a,b),但a,b都为一维矩阵的时候,.dot实现内积,不用考虑a,b具体是行向量还是列向量,也就是说,a,b同为行向量仍然可以计算

a.dot(b)

a@b

2、各个元素相乘

a*b                       但当a,b分别为行向量和列向量时,返回矩阵,不管a,b谁在前边都是一样的结果

np.multiply(a,b),但当a,b分别为行向量和列向量时,.multiply返回矩阵,不管a,b谁在前边都是一样的结果

3、行向量变列向量

a = np.array([1,2,3])

b=np.transpose([a])         修改b,不会对a进行修改

b = np.array([a]).T            修改b,不会对a进行修改

 

b = a.reshape(-1,1)          修改b,同时会对a进行修改

b = a[:,np.newaxis]           修改b,同时会对a进行修改

b=a.reshape(len(a),-1),    修改b,同时会对a进行修改

b=a[:,None].                     修改b,同时会对a进行修改

3.1、列向量变行向量

a = np.array([[2],[5],[8]])

b = np.transpose(a)         修改b,会对a进行修改

4、列向量b乘以行向量a

np.multiply(a,b)

np.multiply(b,a)

a*b

b*a

np.outer(a,b)

np.outer(b,a)

b@a会报错

5、行向量a乘以列向量b

a@b

 

6、需要注意

对矩阵或向量a:a[0]指的是第0行,

所以,对列向量a可以用a[0],a[1]来表示第0,1个元素,但是对行向量a必须用a[:,n]来表示第n个元素,如果对a[0]进行赋值,则是对整个行向量赋值。

 

参考:http://www.itkeyword.com/doc/7498360611061724524/numpy-scalar-multiplication-of-column-vector-times-row-vector

 https://docs.scipy.org/doc/numpy/user/quickstart.html

https://www.cnblogs.com/bob-dong/p/6207871.html

  • 10
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值