【发布时间】:2019-05-27 10:34:36
【问题描述】:
我正在尝试用我的矩阵做一些数学运算,我可以把它写下来,但我不知道如何编码。这涉及获取一列行边际值,然后制作一个新矩阵,其中所有非零行值都替换为边际,之后我想将非零新值的总和除以列边际。
我可以到达行边缘,但我似乎想不出一种重新填充的方法。
我想要的例子
import numpy as np
matrix = np.matrix([[1,3,0],[0,1,2],[1,0,4]])
matrix([[1, 3, 0],
[0, 1, 2],
[1, 0, 4]])
marginals = ((matrix != 0).sum(1) / matrix.sum(1))
matrix([[0.5 ],
[0.66666667],
[0.4 ]])
接下来我要做的是根据第一个的非零位置填充矩阵。
matrix([[0.5, 0.5, 0],
[0, 0.667, 0.667],
[0.4, 0, 0.4]])
最终想要的结果是新矩阵列总和除以该列中非零出现的次数。
matrix([[(0.5+0.4)/2, (0.5+0.667)/2, (0.667+0.4)/2]])
【问题讨论】: