Python генерирует маску для нижнего треугольника матрицы - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть этот код из документации по морскому происхождению, чтобы сгенерировать маску для верхнего треугольника данной корреляционной матрицы

# Compute the correlation matrix
corr = d.corr()

# Generate a mask for the upper triangle

mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True

как можно получить инверсию, маску для нижнего треугольника?

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Вы можете просто перенести имеющуюся у вас маску:

mask = np.zeros_like(corr, dtype=np.bool).T
mask[np.triu_indices_from(mask)] = True
0 голосов
/ 17 декабря 2018

Просто замените triu_indices_from на tril_indices_from:

mask = np.zeros_like(corr, dtype=np.bool)
mask[np.tril_indices_from(mask)] = True
0 голосов
/ 17 декабря 2018

Возьмите транспонирование вашей матрицы:

mask = mask.T

mask
array([[ True, False, False, False, False],
       [ True,  True, False, False, False],
       [ True,  True,  True, False, False],
       [ True,  True,  True,  True, False],
       [ True,  True,  True,  True,  True]])

mask.T
array([[ True, False, False, False, False],
       [ True,  True, False, False, False],
       [ True,  True,  True, False, False],
       [ True,  True,  True,  True, False],
       [ True,  True,  True,  True,  True]])

Однако это скорее обходной путь, правильное решение - @john 's

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...