代码之家  ›  专栏  ›  技术社区  ›  Macter

将矩阵行乘以另一个矩阵中的特定列

  •  0
  • Macter  · 技术社区  · 7 年前

    我有以下维度的两个矩阵:

    matrix(W): (7, 15)
    matrix(X): (268, 7)
    

    我想用X中的每一行乘以W的第一列,然后对结果求和。然后,我想对W中的所有列执行此操作,因此在末尾有15个值。这15个值将是268行中每行乘以W中特定列的总和。

    需要明确的是:

    z1 = (X1 * Wcol1) + (X2 * Wcol1) + .... + (X268 * Wcol1)
    z2 = (X1 * Wcol2) + (X2 * Wcol2) + .... + (X268 * Wcol2)
    ...
    z15 = (X1 * Wcol15) + (X2 * Wcol15) + .... + (X268 * Wcol15)
    

    我目前正在从事以下工作:

    samples=268
    for j in range(samples):
        zs = np.array([])
        z = X[j,:] * w[:,0]
        zs = np.append(zs, z)
        print(zs)
    

    我相信这会返回第一个“z1”的268个分量(然后需要求和)。我很难概括这一点,对所有的15列都这样做。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Z3D__    7 年前

    听起来您想计算矩阵乘积X*W的列之和,并将值存储在数组中。假设X和W属于类矩阵,您可以直接实现这一点,如下所示:

    Z=np.array(sum(X*W))

        2
  •  1
  •   Siladittya    7 年前
    import numpy as np
    

    然后输入矩阵X和W

    xmultw = np.matmul(X,W)
    res = np.sum(xmultw,axis=0)
    

    希望这能解决你的问题