矩阵x向量的列式标量乘法

时间:2017-03-04 19:54:34

标签: python numpy matrix matrix-multiplication

基本上,我想执行矩阵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可以实现这个?

1 个答案:

答案 0 :(得分:1)

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

matrix * vector

matrix *= vector

如果你想就地。

请注意,如果矩阵或向量属于np.matrix类,则无法工作。它必须是np.ndarray

说明:通过numpy广播规则,如果操作数具有不同长度的形状,则较短的一个用左边的那些填充。这导致形状(M,N)和(1,N)。广播1轴,即沿着该轴在运行中重复值以匹配另一个操作数的形状