Я пытаюсь сделать некоторую математику с моей матрицей, я могу записать ее, но я не уверен, как ее кодировать.Это включает получение столбца предельных значений строк, а затем создание новой матрицы, в которой все ненулевые значения строк заменяются на предельные значения, после чего я хотел бы разделить сумму ненулевых новых значений на предельные значения столбцов.
Я могу добраться до маргинальных строк, но, похоже, не могу придумать способ их заселения.
пример того, что я хочу
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]])