填充的Matrix我有成對矩陣:與換位版本
>>> m
a b c d
a 1.0 NaN NaN NaN
b 0.5 1.0 NaN NaN
c 0.6 0.0 1.0 NaN
d 0.5 0.4 0.3 1.0
我想更換楠與同值的右上方在左下方:
>>> m2
a b c d
a 1.0 0.5 0.6 0.5
b 0.5 1.0 0.0 0.4
c 0.6 0.0 1.0 0.3
d 0.5 0.4 0.3 1.0
我可以通過交換列和索引做到這一點:
cols = m.columns
idxs = m.index
for c in cols:
for i in idxs:
m[i][c] = m[c][i]
但是,這與我的實際數據慢,而且我敢肯定有辦法做到這一點在 一步。我知道我可以用「m.T」生成右上角的版本,但我不知道如何用非NaN值替換NaN來獲得完整的矩陣。在numpy中可能有單步執行此操作的方法,但我不知道來自矩陣代數。