【问题标题】:Python equivalent for for R matrix operation用于 R 矩阵运算的 Python 等效项
【发布时间】:2014-04-22 19:11:49
【问题描述】:

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

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

非常感谢!!

【问题讨论】:

  • 这在 R 中有什么作用?我不太了解 R,但如果你解释一下功能,我也许可以在 python 中为你提供一些你需要的东西
  • 另外,什么是 m1、m2 和 m3?形状矩阵分别为 (i x 1)、(i x 1) 和 (1 x i)?
  • 什么是m3?你能提供这些矩阵的形状吗?

标签: python numpy matrix pandas


【解决方案1】:

编辑:从您的问题来看,您似乎想遍历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 代码具有*),然后通过将axis=0 传递给sum。这里m1, m2, m3 是标准的numpy 数组或矩阵。

在 pandas 中,你可以使用apply 做类似的事情

m1 = m2.apply(lambda a: (a * m3).sum(axis=0))

【讨论】:

    猜你喜欢
    • 2017-11-27
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    相关资源
    最近更新 更多