матрица переходов для цепи Маркова
Имеется кваюратная иатрица А, требуется получить матрицу содержащую процентное содержание элементов в каждой строке.
import numpy as np
A=np.array( [[1,2,3,4],[2,4,1,3],[3,4,1,2],[3,1,4,2]] )
P=np.array( [[0.1,0.2,0.3,0.4],[0.2,0.4,0.1,0.3],[0.3,0.4,0.1,0.2],[0.3,0.1,0.4,0.2]] )
Тут P(i,j)=A(i,j)/sum(A(i)) без умножения на 100%. P- матрица переходов для цепи Маркова
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Всё довольно просто. Только надо с номером оси угадать при суммировании. Я обычно просто пробую сначала sum() без аргументов, потом по очереди с axis=0 и axis=1. В данном случае подходит axis=1:
P = A / A.sum(axis=1)
Автор решения: gintaras.martinaitis
→ Ссылка
P=A/A.sum(axis=1).reshape(-1,1)
P=A/A.sum(axis=1) делит столбцы
потому что
A.sum(axis=1) вектор строка
A.sum(axis=1).reshape(-1,1) вектор столбец