【问题标题】:Column wise scalar multiplication of matrix x vector矩阵 x 向量的逐列标量乘法
【发布时间】:2017-07-24 20:22:44
【问题描述】:

基本上,我想执行矩阵 A 和向量 B 的逐列标量乘法。矩阵 A 的每一列都乘以向量 B 中的相应值。我有一个看起来像这样的方法。

def scale_matrix(self, matrix, vector):
    """
    Performs scalar multiplication of matrix and vector column wise
    """
    for value, index in enumerate(vector):
        matrix[:, index] *= value
    return matrix

我在代码的其他地方使用了 numpy,我想知道这是否可以仅使用 numpy 来实现?

【问题讨论】:

    标签: python numpy matrix matrix-multiplication


    【解决方案1】:

    如果您的矩阵是 MxN numpy array 而您的向量是 N 向量,那么您可以简单地做

    matrix * vector
    

    matrix *= vector
    

    如果你想要它就地。

    请注意,如果矩阵或向量属于 np.matrix 类,这将不起作用。必须是np.ndarray

    解释:根据 numpy 广播规则,如果操作数具有不同长度的形状,则较短的将用左侧的形状填充。这导致形状(M,N)和(1,N)。广播 1 轴,即沿此轴动态重复值以匹配其他操作数的形状

    【讨论】:

      猜你喜欢
      • 2020-03-16
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 2016-01-23
      相关资源
      最近更新 更多