Wai*_*ung 5 numpy vectorization matrix-multiplication dot-product
默认矩阵乘法计算为
c[i,j] = sum(a[i,k] * b[k,j])
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用自定义公式而不是点积来获取
c[i,j] = sum(a[i,k] == b[k,j])
Run Code Online (Sandbox Code Playgroud)
在numpy中有一种有效的方法吗?
您可以使用广播:
c = sum(a[...,np.newaxis]*b[np.newaxis,...],axis=1) # == np.dot(a,b)
c = sum(a[...,np.newaxis]==b[np.newaxis,...],axis=1)
Run Code Online (Sandbox Code Playgroud)
我包括newaxis
在b
刚刚明确表示数组如何扩大。还有其他向数组添加尺寸的方法(重塑,重复等),但是效果是相同的。展开a
并b
具有相同的形状,以逐个元素相乘(或==),然后在正确的轴上求和。
归档时间: |
|
查看次数: |
1528 次 |
最近记录: |