【发布时间】:2019-07-29 23:16:13
【问题描述】:
我有一个数据框/矩阵,它是 MxJ,看起来像这样:
**dataframe: R**
index 0 1 2 3 ... J #columns, go from 0 to J
0 3 0 5 6 ... #values - first row
1 .........
....................
M
还有一个矩阵/数据框,它是 JxJ,它由 0 和 1 组成,看起来像这样:
**dataframe: K / its symetric**
index 0 1 2 3 ... J #columns, go from 0 to J
0 1 0 1 0 ...
1 0 1 1 1 ...
2 0 1 1 1 ...
.........
....................
J
我需要对每一行进行计算
sum[0 to J](sum[0 to J](K[i,j]*r[i]*r[j])
基本上对于第一行,具体示例是:[(3*3)*1]+[(3*0)*0]+[(3*5)*1]+[(3*6)*0]+[(0*0)*1]+[(0*5)*1]+[(0*6)*1]+[(5*5)*1]+[(5*6)*1]。所以最终的结果应该是1xM。
我知道如何使用 3 个 for 循环,它的伪代码:
sum = []
#J - number of columns
#M - number of rows
for m in range(o,M)
for i in range(0, J):
for j in range (i,J):
sum[m] = sum[m] + (a[i] * a[j]) * wi[i,j]
但 for 循环不是一个选项,因为我的数据量很大。 有人可以用更多的熊猫方式解释我如何用行(那部分我不知道怎么做)来做那个笛卡尔积。
【问题讨论】: