小编Dan*_*lah的帖子

使用Numpy(无循环)将轴乘以矩阵(点积)

我正在与Numpy一起处理图像处理问题,我正在尝试避免循环并执行以下操作:

我有一个Dims矩阵M NxNxKxK(它是矩阵KxK的矩阵NxN),对于每一行,我希望乘以(点积)行中的所有N个矩阵(KxK).因此,如果我在完整的M(所有行)上执行此操作,我得到矩阵的向量V(Nx1)(KxK),其中V [i]保持M [i,0] xM [i,1]的点积]×... XM [I,N-1].

我使用循环实现了这个问题的解决方案,我无法找到一种没有循环的方法.

实现(带循环):

    a = np.array([[1,1,1], [1,1,1], [1,1,1]])
    mat = np.array([[a,a,a,a], [a*2,a*2,a*2,a*2], [a*3,a*3,a*3,a*3],
                    [a*4,a*4,a*4,a*4]])  # the original matrix
    N, N, k, k = mat.shape
    result = np.ones((N, k, k))  # resulting matrix
    for i in range(N):
        k = functools.reduce(np.dot, mat[i,:])
        result[i,:] = k
    print(result)
Run Code Online (Sandbox Code Playgroud)

product numpy matrix multiplication

7
推荐指数
1
解决办法
942
查看次数

标签 统计

matrix ×1

multiplication ×1

numpy ×1

product ×1