Numpy:带最大值而不是总和的点积
Numpy: Dot product with max instead of sum
在 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])
如你所见,它与上面的完全平行,只是我们对所有 j
取 max
而不是总和。
其他选项可以是 min
、prod
以及将 sequence/set 转换为值的任何其他操作。
正常的点积是(使用 numpy 广播)
M3 = np.sum(M1[:, :, None] * M2[None, :, :], axis = 1)
您可以对具有 axis
关键字的任何函数执行相同的操作。
M3 = np.max(M1[:, :, None] * M2[None, :, :], axis = 1)
在 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])
如你所见,它与上面的完全平行,只是我们对所有 j
取 max
而不是总和。
其他选项可以是 min
、prod
以及将 sequence/set 转换为值的任何其他操作。
正常的点积是(使用 numpy 广播)
M3 = np.sum(M1[:, :, None] * M2[None, :, :], axis = 1)
您可以对具有 axis
关键字的任何函数执行相同的操作。
M3 = np.max(M1[:, :, None] * M2[None, :, :], axis = 1)