numpy matlib_python做3d游戏

numpy matlib_python做3d游戏numpy中matmul的使用简介:numpy.matmul函数返回两个数组的矩阵乘积

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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注