矩阵加法,乘法np.linalg.multi_dot()和a.dot(b)

本文详细介绍了使用NumPy进行矩阵加法和乘法运算的方法,包括如何通过代码实现矩阵的加法和乘法,以及如何利用np.linalg.multi_dot和a.dot(b)进行矩阵乘积的计算。

矩阵加法:

比如现在有两个矩阵

a=\begin{bmatrix} a_{11} &a_{12} \\ a_{21} & a_{22} \end{bmatrix}\\,b=\begin{bmatrix} b_{11} &b_{12} \\b_{21} & b_{22} \end{bmatrix}

则两者加法:

c=a+b\\ ~~~~~~~=\begin{bmatrix} c_{11} &c_{12} \\c_{21} & c_{22} \end{bmatrix}\\~~~~~~~=\begin{bmatrix} a_{11}+ b_{11} &a_{12}+ b_{12} \\a_{21} + a_{21}& a_{22}+ b_{22} \end{bmatrix}

import numpy as np
a=np.array([[5,9,3,4,1],[1,2,3,4,0]])
c=a[..., 0:2]+a[..., 2:4]#将对应元素相加,是矩阵的加法
print(c)#[[ 8 13]
 # [ 4  6]]
print(c//2)#整除, 去掉余数,
#[[4 6]
 # [2 3]]

与高等数学的计算方式一样,np.linalg.multi_dot(A,B),np.linalg.multi_dot(A,B,C)计算两个或多个矩阵的乘积分,

另外,a.dot(b)也是普通的矩阵乘法,计算结果与np.linalg.multi_dot

比如现在有两个矩阵

a=\begin{bmatrix} a_{11} &a_{12} \\ a_{21} & a_{22} \end{bmatrix}\\,b=\begin{bmatrix} b_{11} &b_{12} \\b_{21} & b_{22} \end{bmatrix}

则两者乘积:

c=a*b=\begin{bmatrix} c_{11} &c_{12} \\c_{21} & c_{22} \end{bmatrix}

其中c_{11}=a_{11}*b_{11}+a_{12}*b_{21}

代码验证如下

import numpy as np
a=np.array([[1, 2],[3, 4]])
b=np.array([[1, 2],[3, 4]])
# print(a)
c=np.linalg.multi_dot([a,b])#就是计算矩阵的普通乘法,与高等数学的计算方式一样
print(c)#[[ 7 10]
 # [15 22]]
c2=a.dot(b)
print('c2',c2)#同c

m=np.array([[1, 2],[3, 4]])
d=np.linalg.multi_dot([a,b,m])#还可以计算多个矩阵的乘积
d2=a.dot(b).dot(m)
print(d)#[[ 37  54]
 #        [ 81 118]]
print('d2',d2)#同d

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值