我编写了以下Python/Pandas代码,将M行x N列数据帧(A)的每列乘以M x 1数据帧(b),得到M x N数据帧C:
def multiply_columns(A, b):
C = pd.DataFrame(A.values * b.values, columns=A.columns, index=b.index)
return C
换句话说,它将矩阵的每一列乘以相等长度的列向量。
代码运行良好,但我记不起这个操作的正式名称了。想法?
它被称为"广播"。请参阅numpy
关于广播主题的文档。
此外,需要注意的是,A.values
和b.values
不是矩阵,它们是数组。这可能看起来是一个小细节,但它非常重要。矩阵上的许多数学运算与数组上的相应运算产生完全不同的结果。例如,M1*M2
是矩阵的矩阵乘积,而它是数组的逐元素乘法。请参阅此答案中的更多详细信息。