基本上,我想执行矩阵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可以实现这个?
答案 0 :(得分:1)
如果你的矩阵是MxN numpy array
而你的矢量是N矢量那么你可以简单地做
matrix * vector
或
matrix *= vector
如果你想就地。
请注意,如果矩阵或向量属于np.matrix
类,则无法工作。它必须是np.ndarray
。
说明:通过numpy广播规则,如果操作数具有不同长度的形状,则较短的一个用左边的那些填充。这导致形状(M,N)和(1,N)。广播1轴,即沿着该轴在运行中重复值以匹配另一个操作数的形状