我有一个数据帧/矩阵,它是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])
基本上第一行的concrte示例是:[(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循环不是一个选择,因为我的数据是巨大的。 有人能解释我如何做笛卡尔积与行(那部分我不知道怎么做)在更大的方式。你知道吗
您可以将行转换为lists,并使用以下code:
相关问题 更多 >
编程相关推荐