numpy中matmul的使用
简介:
numpy.matmul 函数返回两个数组的矩阵乘积。当两个数组都是二维数组的时候,就是数学上的两个矩阵的乘积。
例如:
import numpy.matlib
import numpy as np
a = [[1,0],[0,1]]
b = [[4,1],[2,2]]
print (np.matmul(a,b))
结果:
[[4 1]
[2 2]]
1.如果第一个参数或者第二个参数是1 维的,它会提升该参数为矩阵(根据另一个参数维数,给该参数增加一个为1的维数)。矩阵相乘之后会将为1的维数去掉。
import numpy.matlib
import numpy as np
a = [[1,2],[3,4]]
b = [1,2]
print (np.matmul(a,b))
print (np.matmul(b,a))
结果:
[ 5 11]
[ 7 10]
上面这两种情况,会分别将b提升为(2×1)的矩阵和(1×2)的矩阵。即:
2.如果某一个参数是N(N>2) )维的,该参数被理解为一些矩阵(参数的最后两个维数为矩阵维数)的stack,而且计算时会相应的广播。
a = np.arange(2*2*4).reshape((2,2,4))
b = np.arange(2*2*4).reshape((2,4,2))
c = np.arange(1*2*4).reshape((1,4,2))
print(np.matmul(a,b))
print()
print(np.matmul(a,c))
结果:
[[[ 28 34]
[ 76 98]]
[[428 466]
[604 658]]]
[[[ 28 34]
[ 76 98]]
[[124 162]
[172 226]]]
a多维的数组,它就会被理解成两个(2×2)矩阵。
b多维的数组,它就会被理解成两个(4×2)矩阵。
c多维的数组,它就会被理解成一个(4×2)矩阵
那么np.matmul(a,b)则会将a的第一个矩阵和b的第一个矩阵相乘,将a的第二个矩阵b 的第二个矩阵相乘,最终得到一个2×2×2 的结果。
np.matmul(a,c)的情况,由于,c只有一个矩阵,所以它会广播一个矩阵与a的第二个矩阵相乘。
今天的文章numpy matlib_python做3d游戏分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/74212.html