Python等效于R矩阵运算

时间:2014-03-17 14:18:58

标签: python numpy matrix pandas

R代码的Python / Numpy / Pandas等价物是什么:

for (i in 1:n) m1[i,] <- colSums(m2[i,]*m3)

非常感谢!!

1 个答案:

答案 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))