【发布时间】: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。