R代码的Python / Numpy / Pandas等价物是什么:
for (i in 1:n) m1[i,] <- colSums(m2[i,]*m3)
非常感谢!!
答案 0 :(得分:0)
修改:根据您的问题,您似乎希望迭代m2
的每一行,将其与矩阵m3
元素相乘并存储列的总和相应行m1
中的那些矩阵。所以我假设这些维度:m1: (n, m), m2: (n, m), m3: (n1, m)
。通常,n1 != n
但列维m
对所有人来说都是相同的。
numpy
m1 = numpy.matrix(map(lambda a: (a * m3).sum(axis=0), m2))
这一行占用m2
的每一行,将其乘以m3
(元素,而不是矩阵 - 矩阵乘法,因为原始R代码有*
),然后取colsums将axis=0
传递给sum
。这里m1, m2, m3
是标准的numpy数组或矩阵。
在pandas中,你可以使用apply
做类似的事情
m1 = m2.apply(lambda a: (a * m3).sum(axis=0))