giddy.util.fill_empty_diagonals¶
- giddy.util.fill_empty_diagonals(p)[source]¶
Assign 1 to diagonal elements which fall in rows full of 0s to ensure the transition probability matrix is a stochastic one. Currently implemented for two- and three-dimensional transition probability matrices.
- Parameters:
- parray
(k, k), an ergodic/non-ergodic Markov transition probability matrix.
- Returns:
- p_temparray
Matrix without rows full of 0 transition probabilities. (stochastic matrix)
Examples
>>> import numpy as np >>> from giddy.util import fill_empty_diagonals >>> p2 = np.array([[.5, .5, 0], [.3, .7, 0], [0, 0, 0]]) >>> fill_empty_diagonals(p2) array([[0.5, 0.5, 0. ], [0.3, 0.7, 0. ], [0. , 0. , 1. ]])
>>> p3 = np.array([[[0.5, 0.5, 0. ], [0.3, 0.7, 0. ], [0. , 0. , 0. ]], ... [[0. , 0. , 0. ], [0.3, 0.7, 0. ], [0. , 0. , 0. ]]]) >>> p_new = fill_empty_diagonals(p3) >>> p_new[1] array([[1. , 0. , 0. ], [0.3, 0.7, 0. ], [0. , 0. , 1. ]])