矩阵乘法中每个单元格的平均值,而不仅仅是 python 中的总和
Posted
技术标签:
【中文标题】矩阵乘法中每个单元格的平均值,而不仅仅是 python 中的总和【英文标题】:mean of every cell in matrix multiplcation instead of just the sum in python 【发布时间】:2021-12-18 01:09:43 【问题描述】:我知道使用 2 二维数组的 numpy,它会给我矩阵乘法。以下是我的代码示例。 c的每个单元格中的元素是乘积的总和,但我想要的是每个单元格中的平均值,而不是总和。
a = np.array([[1,2,3],[1,2,3]])
b = np.array([[1,2,3,4,5],[1,2,3,4,5]])
c = np.dot(np.transpose(a), b)
例子是单元格1,值是(1*1+1*1 = 2)
我想要的是(average of 1*1+1*1)
。我如何使用 numpy 做到这一点?
【问题讨论】:
1*1 + 1*1
的平均值是什么意思?
如果您指的是(1*1, 1*1)
的平均值,为什么不将结果矩阵除以2?每个值都是两个元素的总和。
没错。由于点积是产品的总和,并且您希望均值将点积除以 2。
这只是我的示例数组,但实际数组大小不同。 a(size) = 8x300 b(size) = 8X355 c(size) = 300X355,但是我在 c 的每个单元格中想要的是平均值,而不是总和。所以,这意味着我将每个单元格除以行数以获得平均值,对吗?所以这意味着我将它除以8?为菜鸟问题道歉。
完全正确。您除以两个数组之间的共享维度,在本例中为 8。
【参考方案1】:
感谢大家的投入。我已经更新了代码以获得每个单元格的平均值:
c = np.dot(np.transpose(a), b)/len(b)
【讨论】:
以上是关于矩阵乘法中每个单元格的平均值,而不仅仅是 python 中的总和的主要内容,如果未能解决你的问题,请参考以下文章
jquery DataTables - 更改单元格的值而不仅仅是显示值