我想用两个熊猫矩阵创建一个新的熊猫矩阵。
我不确定如何在没有示例的情况下描述我的问题。
所以,我的矩阵A:
1 2 3 4 5
1 0.821124 0.767681 0.639456 0.131096 0.398733
2 0.108253 0.865229 0.285755 0.409036 0.398622
3 0.529245 0.989824 0.283102 0.392597 0.983236
4 0.699661 0.828631 0.404465 0.027329 0.936447
5 0.983737 0.262978 0.387633 2.228383 0.677531
我的矩阵B:
A B
a b a b
A a 0.090075 0.550466 0.748526 0.338671
b 0.577898 0.005927 0.718440 0.482596
B a 0.042174 0.332807 0.214504 0.781927
b 0.819624 0.066917 0.372023 0.459321
我想得到一个矩阵C:
A B
a b a b
1 2 3 4 5 2 3 4
A a 1 NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN
b 3 NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN
B a 5 NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN
b 3 NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN
并填写每个单元格的排序。
C((A,b,3)(A,a,1))= A((3)(1))*B((A,b)(A,a))
这里,(A,b,2)是行,(A,a,1)是列。例如。 :
C((A,b,3)(A,a,1)) = 0.529245 * 0.577898.
C((B,b,4)(A,a,2)) = 0.828631 * 0.819624
我成功构建了带有循环的C矩阵和来自Panda的C.loc。但它很慢。我的矩阵A大约是2000 * 10 000,我的矩阵B 4000 * 4000,我的矩阵C大约是400 000 * 400 000(如果我们比较这个例子还有一个级别)。
对于C的每个第二级,看起来我将A乘以B,但是这里A和C的索引总是匹配。
如何在不丢失头发的情况下解决问题。 提前谢谢。
我现在唯一可以优化我的微积分的方法是将我的作品与MPI分开。但它仍然很慢。