我编写了以下Python / Pandas代码,将M行x N col数据帧(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
换句话说,它将矩阵的每列乘以相等长度的列向量。
代码工作正常,但我无法回想起此操作的正式名称。想法?
答案 0 :(得分:2)
它被称为“广播”。请参阅有关主题的numpy
文档:Broadcasting。
另外,请注意A.values
和b.values
不是矩阵,它们是数组。这似乎是一个小细节,但它非常重要。对矩阵的许多数学运算产生的结果与它们在数组上的相应运算完全不同。因此,例如,M1*M2
是矩阵的矩阵乘积,而它是数组的逐元素乘法。请参阅This answer中的详细信息。