矩阵乘法中每个单元格的平均值,而不仅仅是 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 - 更改单元格的值而不仅仅是显示值

Pandas:将 DataFrame 转换为每个单元格的均值和标准差

线性变换/矩阵及乘法- 图解线性代数 03

关于线程的问题

多线程基准测试问题

Apache Spark - 处理临时 RDD 上的滑动窗口