numpy 有没有办法做到以下几点(或者是否有一个通用的数学术语):

假设正常的点积:

M3[i,k] = sum_j(M1[i,j] * M2[j,k])

现在我想用 sum 其他操作替换 sum,说最大值:
M3[i,k] = max_j(M1[i,j] * M2[j,k])

如您所见,它与上述完全平行,只是我们将 max 用于所有 j 而不是总和。

其他选项可以是 minprod 以及将序列/集转换为值的任何其他操作。

最佳答案

正常的点积将是(使用 numpy 广播)
M3 = np.sum(M1[:, :, None] * M2[None, :, :], axis = 1)
你可以对任何你想要的带有 axis 关键字的函数做同样的事情。
M3 = np.max(M1[:, :, None] * M2[None, :, :], axis = 1)

关于python - Numpy:使用最大值而不是总和的点积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41164305/

10-11 07:08