Dan*_*elY 4 python numpy matrix
我正在尝试以下操作:
给定一个矩阵 A (x, y ,3) 和另一个矩阵 B (3, 3),我想返回一个 (x, y, 3) 矩阵,其中 A 的第三维乘以 B 的值 (与 RGB 图像转换为灰色时类似,只是那些“RGB”值乘以矩阵而不是标量)...
这是我尝试过的:
np.multiply(B, A)
np.einsum('ijk,jl->ilk', B, A)
np.einsum('ijk,jl->ilk', A, B)
Run Code Online (Sandbox Code Playgroud)
所有这些都因尺寸未对齐而失败。
我缺少什么?
您可以使用np.tensordot-
np.tensordot(A,B,axes=((2),(1)))
Run Code Online (Sandbox Code Playgroud)
einsum相当于 -
np.einsum('ijk,lk->ijl', A, B)
Run Code Online (Sandbox Code Playgroud)
我们也可以使用A.dot(B.T),但这会在底层循环。所以,可能不是最优选的,但它是一个紧凑的解决方案,
| 归档时间: |
|
| 查看次数: |
11226 次 |
| 最近记录: |