import numpy as np
a = np.array([1, 2])
b = np.array([[1, 2], [1, 2]])
print(a @ b)
这段代码的输出结果是[3, 6],1*2的矩阵乘以一个2*2的矩阵返回一个1*2的矩阵,这个可以理解,可为什么下面这个:
import numpy as np
a = np.array([1, 2])
b = np.array([[1, 2], [1, 2]])
print(b @ a)
返回结果是[5, 5],为什么2*2的矩阵可以和1*2的矩阵做矩阵乘法呢?而且感觉是第一个矩阵的行向量依次与第二个数组对应元素相乘,返回了一个数组,可以解释一下其中的原理吗?
只要两个矩阵的行与列的维度有一个相等, 即便另一个不相等也能进行计算, 这就是广播
问得好啊。不过这种情况似乎只发生在1*2,2*2,你举得这个例子中。
我尝试了其他许多种组合,如果维度不匹配的话,就会导致计算出现维度不匹配的错误。感觉是个特例一样的存在。
典型的广播机制
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632